|এই প্ৰবন্ধটো বৰ্তমান লিখি থকা থকা হৈছে। আপুনিও এই কাৰ্যত অংশগ্ৰহণ কৰিব পাৰে। সহায় কৰিবৰ বাবে ।|
বৰ্তমান কাম কৰি থকা লিখকৰ নাম জানিবলৈ ইচ্ছা কৰিলে ; যদি এই প্ৰবন্ধত বহুদিন ধৰি একো কাম হোৱা নাই, তেনেহলে এই সাঁচটো আঁতৰাই দিব পাৰিব।
ছফ্টৱেৰ ইঞ্জিনিয়াৰিং হৈছে আভিযান্ত্ৰিক পদ্ধতিৰে চফ্টৱেৰ ডিজাইন, ডেভেলপ আৰু মেইনটেইন কৰাৰ বিষয়ে অধ্যয়ন আৰু প্ৰয়োগ।1968 চনত পৃথিৱীৰ প্ৰথমখন ছফ্টৱেৰ ইঞ্জিনিয়াৰিং কনফাৰেন্সত এই নামটো প্ৰথমবাৰৰ বাবে ব্যবহাৰ কৰা হয়। বিশ্বৰ বিভিন্ন প্ৰখ্যাত ছফ্টৱেৰ বিশেষজ্ঞসকলে ভাগলোৱা এই কনফাৰেন্সতে তেখেতসকলৰ অভিজ্ঞতাৰ ভেটিত ইঞ্জিনিয়াৰিং বিদ্যাসম্পন্ন পদ্ধতিৰে ছফ্টৱেৰ তৈয়াৰ কৰিবলৈ এলানী "বেষ্ট প্ৰেক্টিচ" নিৰ্ধাৰিত কৰে। ব্যাবসায়িক পৰ্য্যায়ৰ বা নিৰ্ভুল ছফ্টৱেৰ তৈয়াৰ কৰিবলৈ এইখিনি অনুসৰণ কৰা বাঞ্চনীয়।
The result of the conference is a report that defines how software should be developed [i.e., software engineering foundations]. The original report is publicly available. The discipline of Software Engineering was coined to address poor quality of software, get projects exceeding time and budget under control, and ensure that software is built systematically, rigorously, measurably, on time, on budget, and within specification. Engineering already addresses all these issues, hence the same principles used in engineering can be applied to software. These issues were highly important for NATO who acted as a facilitator of the conference, and its sponsoring body. The widespread lack of best practices for software at the time was perceived as "software crisis". Software development, a much used and more generic term, does not necessarily subsume the engineering paradigm. The modern generally accepted practice for Software Engineering has been cataloged as a Guide to the Software Engineering Body of Knowledge (SWEBOK) which has become an internationally accepted standard ISO/IEC TR 19759:2005.
For practitioners who wish to become proficient and recognized as professional software engineers, the IEEE offers two certifications that extend knowledge above level achieved by an academic degree: Certified Software Development Associate and Certified Software Development Professional. In some parts of the US such as Texas, the use of the term Engineer is regulated by law and reserved only for use by individuals who have aProfessional Engineer license. The United States, starting from 2013 offer anNCEES Professional Engineer exam for Software Engineering, thereby allowing Software Engineers to be licensed and recognized. Mandatory licensing is currently still largely debated, and perceived as controversial. The IEEE informs the professional engineer license is not required unless the individual would work for public where health of others could be at risk if the engineer was not fully qualified to required standards by the particular state. Professional engineer licenses are specific to the state which has awarded them, and have to be regularly retaken.
When the first digital computers appeared in the early 1940s, the instructions to make them operate were wired into the machine. Practitioners quickly realized that this design was not flexible and came up with the "stored program architecture" or von Neumann architecture. Thus the division between "hardware" and "software" began with abstraction being used to deal with the complexity of computing.
Programming languages started to appear in the 1950s and this was also another major step in abstraction. Major languages such as Fortran, ALGOL, and COBOL were released in the late 1950s to deal with scientific, algorithmic, and business problems respectively. E.W. Dijkstra wrote his seminal paper, "Go To Statement Considered Harmful", in 1968 and David Parnas introduced the key concept of modularity andinformation hiding in 1972 to help programmers deal with the ever increasing complexity of software systems. A software system for managing the hardware called an operating system was also introduced, most notably by Unix in 1969. In 1967, the Simula language introduced theobject-oriented programming paradigm.
These advances in software were met with more advances in computer hardware. In the mid-1970s, the microcomputer was introduced, making it economical for hobbyists to obtain a computer and write software for it. This in turn led to the now famous Personal Computer (PC). The Software Development Life Cycle or SDLC was also starting to appear as a consensus for centralized construction of software in the mid-1980s. The late 1970s and early 1980s saw the introduction of several new Simula-inspired object-oriented programming languages, including Smalltalk, Objective-C, and C++.
Open-source software started to appear in the early 90s in the form of Linux and other software introducing the "bazaar" or decentralized style of constructing software. Then the World Wide Web and the popularization of the Internet hit in the mid 90s, changing the engineering of software once again. Distributed systems gained sway as a way to design systems, and the Java programming language was introduced with its own virtual machine as another step in abstraction. Programmers collaborated and wrote the Agile Manifesto, which favored more lightweight processes to create cheaper and timelier software.
The current definition of software engineering is still being debated by practitioners today as they struggle to come up with ways to produce software that is "cheaper, better, faster" [উদ্ধৃতিৰ প্ৰয়োজন]. Cost reduction has been a primary focus of the IT industry since the 1990s. Total cost of ownership represents the costs of more than just acquisition. It includes things like productivity impediments, upkeep efforts, and resources needed to support infrastructure.
- Abran et al. 2004, পৃষ্ঠা 1–1
- ACM (2006). "Computing Degrees & Careers". ACM. http://computingcareers.acm.org/?page_id=12। আহৰণ কৰা হৈছে: 2010-11-23.
- Laplante, Phillip (2007). What Every Engineer Should Know about Software Engineering. প্ৰকাশক Boca Raton: CRC. ISBN 978-0-8493-7228-5. http://books.google.com/?id=pFHYk0KWAEgC&lpg=PP1&dq=What%20Every%20Engineer%20Should%20Know%20about%20Software%20Engineering.&pg=PA1#v=onepage&q&f=false। আহৰণ কৰা হৈছে: 2011-01-21.
- "Software Engineering". http://homepages.cs.ncl.ac.uk/brian.randell/NATO/nato1968.PDF.
- Sommerville 2008, পৃষ্ঠা 26
- Peter, Naur; Brian Randell (7–11 October 1968). "Software Engineering: Report of a conference sponsored by the NATO Science Committee" (PDF). প্ৰকাশক Garmisch, Germany: Scientific Affairs Division, NATO. http://homepages.cs.ncl.ac.uk/brian.randell/NATO/nato1968.PDF। আহৰণ কৰা হৈছে: 2008-12-26.
- Randell, Brian (10 August 2001). "The 1968/69 NATO Software Engineering Reports". Brian Randell's University Homepage. The School of the Computer Sciences, Newcastle University. http://homepages.cs.ncl.ac.uk/brian.randell/NATO/NATOReports/index.html। আহৰণ কৰা হৈছে: 2008-10-11. "The idea for the first NATO Software Engineering Conference, and in particular that of adopting the then practically unknown term "software engineering" as its (deliberately provocative) title, I believe came originally from Professor Fritz Bauer."
- "ISO/IEC TR 19759:2005". http://www.iso.org/iso/iso_catalogue/catalogue_tc/catalogue_detail.htm?csnumber=33897। আহৰণ কৰা হৈছে: 2012-04-01.
- "NCEES Software Engineering Exam Specifications". http://cdn1.ncees.co/wp-content/uploads/2012/11/Exam-specifications_PE-Software-Apr-2013.pdf। আহৰণ কৰা হৈছে: 2012-04-01.
- Leondes (2002). intelligent systems: technology and applications. CRC Press. ISBN 978-0-8493-1121-5.
- Dijkstra, E. W. (March 1968). "Go To Statement Considered Harmful". Communications of the ACM খণ্ড 11 (3): 147–148. doi:10.1145/362929.362947. http://www.cs.utexas.edu/users/EWD/ewd02xx/EWD215.PDF। আহৰণ কৰা হৈছে: 2009-08-10.
- Parnas, David (December 1972). "On the Criteria To Be Used in Decomposing Systems into Modules". Communications of the ACM খণ্ড 15 (12): 1053–1058. doi:10.1145/361598.361623. http://www.acm.org/classics/may96/। আহৰণ কৰা হৈছে: 2008-12-26.
- Raymond, Eric S. The Cathedral and the Bazaar. ed 3.0. 2000.