170 likes | 283 Views
ICS 52 Introduction to Software Engineering. Lecture 2 Duplication of course material for any commercial purpose without the explicit written permission of the professor is prohibited. Today’s lecture. Defining software engineering People, processes, tools, and products.
E N D
ICS 52Introduction to Software Engineering Lecture 2 Duplication of course material for any commercial purpose without the explicit written permission of the professor is prohibited.
Today’s lecture • Defining software engineering • People, processes, tools, and products
Software engineering • “A discipline that deals with the building of software systems which are so large that they are built by a team or teams of engineers.” [Ghezzi, Jazayeri, Mandrioli]
Software engineering • “A discipline that deals with the building of software systems which are so large that they are built by a team or teams of engineers.” [Ghezzi, Jazayeri, Mandrioli] • “Multi-person construction of multi-version software.” [Parnas]
Software engineering • “A discipline whose aim is the production of fault-free software, delivered on-time and within budget, that satisfies the user’s needs. Furthermore, the software must be easy to modify when the user’s needs change.” [Schach] • “It’s where you get to design big stuff and be creative.” [Taylor]
Software engineering • “Difficult.” [van der Hoek]
Essential characteristics • Software engineering concerns the development of large programs • The central theme is mastering complexity • Software evolves • The efficiency with which software is developed is of crucial importance • Regular cooperation between people is an integral part of programming-in-the-large • The software has to support its users effectively • Software engineering is a field in which members of one culture create artifacts on behalf of members of another culture • Software engineering is a balancing act
Programming versus software engineering Programming Software engineering
From programming to software engineering • People • who else would do the work? • range from novice to very experienced • Processes • to organize and manage the efforts of individuals • range from informal to very formal • Tools • to support the people and the processes • range from simple to very advanced
People • The single most important factor in the success/failure of a product • Scarce resource • quality • suitability • Cost • Many different kinds of people • managers • programmers • technical writers
Processes • Essential to achieve a quality product • Scarce resource • quality • suitability • cost • Many different kinds of processes • bug tracking • change approval • quality assurance
Tools • Needed to support people and processes • Scarce resource • quality • suitability • cost • Many different kinds of tools • drawing • analysis • project management • source code management
Products • Result of applying people, processes, and tools • Consist of many deliverables • software • documentation • user manuals • test cases • design documents • Have intrinsic qualities • safety • reliability • user friendliness
Products • Products are always the eventual goal • selling products creates revenue • selling good products creates lots of revenue • selling bad products creates little revenue • People, processes, and tools are retained by organization • build a reputation through the quality of products • create organizational culture • important to keep the team intact
Choose the right solution Hawaii Tijuana Europe
Homework • Read chapter 1, van Vliet