course introduction and overview of software...
TRANSCRIPT
![Page 1: Course Introduction and Overview of Software Engineeringtaylor/classes/211/CourseIntroduction2007.pdf · Course Introduction and Overview of Software Engineering ... –Tradeoffs](https://reader031.vdocuments.mx/reader031/viewer/2022030506/5ab3fe4d7f8b9ab47e8b8223/html5/thumbnails/1.jpg)
Course Introduction andOverview of SoftwareEngineering
Richard N. TaylorInformatics 211Fall 2007
![Page 2: Course Introduction and Overview of Software Engineeringtaylor/classes/211/CourseIntroduction2007.pdf · Course Introduction and Overview of Software Engineering ... –Tradeoffs](https://reader031.vdocuments.mx/reader031/viewer/2022030506/5ab3fe4d7f8b9ab47e8b8223/html5/thumbnails/2.jpg)
Software Engineering
“A discipline that deals with thebuilding of software systems whichare so large that they are built by ateam or teams of engineers.”[Ghezzi, Jazayeri, Mandrioli]
“Multi-person construction of multi-version software.” [Parnas]
![Page 3: Course Introduction and Overview of Software Engineeringtaylor/classes/211/CourseIntroduction2007.pdf · Course Introduction and Overview of Software Engineering ... –Tradeoffs](https://reader031.vdocuments.mx/reader031/viewer/2022030506/5ab3fe4d7f8b9ab47e8b8223/html5/thumbnails/3.jpg)
Software Engineering
“A discipline whose aim is the production offault-free software, delivered on-time andwithin budget, that satisfies the user’s needs.Furthermore, the software must be easy tomodify when the user’s needs change.”[Schach]
“Difficult.” [van der Hoek]
![Page 4: Course Introduction and Overview of Software Engineeringtaylor/classes/211/CourseIntroduction2007.pdf · Course Introduction and Overview of Software Engineering ... –Tradeoffs](https://reader031.vdocuments.mx/reader031/viewer/2022030506/5ab3fe4d7f8b9ab47e8b8223/html5/thumbnails/4.jpg)
Software Engineering
“It’s where you actually get todesign big stuff and becreative.” [Taylor]
![Page 5: Course Introduction and Overview of Software Engineeringtaylor/classes/211/CourseIntroduction2007.pdf · Course Introduction and Overview of Software Engineering ... –Tradeoffs](https://reader031.vdocuments.mx/reader031/viewer/2022030506/5ab3fe4d7f8b9ab47e8b8223/html5/thumbnails/5.jpg)
Design, Science, Engineering,Management, Human Factors Design: concepts, methods, techniques Science: empirical studies; theories characterizing
aggregate system behavior (e.g. reliability) Management: organizing teams, directing activities,
correcting problems Human factors: user task understanding and
modeling; ergonomics in user interface design Engineering: tradeoffs, canonical solutions to typical
problems– Tradeoffs and representative qualities
• Pick any two:–Good, fast, cheap
![Page 6: Course Introduction and Overview of Software Engineeringtaylor/classes/211/CourseIntroduction2007.pdf · Course Introduction and Overview of Software Engineering ... –Tradeoffs](https://reader031.vdocuments.mx/reader031/viewer/2022030506/5ab3fe4d7f8b9ab47e8b8223/html5/thumbnails/6.jpg)
Common Software EngineeringPrinciples (CW* list) Rigor and Formality Separation of Concerns Modularity and Decomposition Abstraction Anticipation of Change Generality Incrementality Reliability *Conventional Wisdom
![Page 7: Course Introduction and Overview of Software Engineeringtaylor/classes/211/CourseIntroduction2007.pdf · Course Introduction and Overview of Software Engineering ... –Tradeoffs](https://reader031.vdocuments.mx/reader031/viewer/2022030506/5ab3fe4d7f8b9ab47e8b8223/html5/thumbnails/7.jpg)
Software Lifecycle Context(Waterfall Model) (Old CW)
Requirements
Design
Implementation
Deployment
Validation
Integration
![Page 8: Course Introduction and Overview of Software Engineeringtaylor/classes/211/CourseIntroduction2007.pdf · Course Introduction and Overview of Software Engineering ... –Tradeoffs](https://reader031.vdocuments.mx/reader031/viewer/2022030506/5ab3fe4d7f8b9ab47e8b8223/html5/thumbnails/8.jpg)
Software Lifecycle Context(Waterfall Model)
Requirements
Design
Implementation
Deployment
Validation
Integration
![Page 9: Course Introduction and Overview of Software Engineeringtaylor/classes/211/CourseIntroduction2007.pdf · Course Introduction and Overview of Software Engineering ... –Tradeoffs](https://reader031.vdocuments.mx/reader031/viewer/2022030506/5ab3fe4d7f8b9ab47e8b8223/html5/thumbnails/9.jpg)
The Mythical Man-Monthby Fred Brooks (I) Published 1975, Republished 1995 Experience managing the development of
OS/360 in 1964-65 Central Argument
– Large programming projects suffer managementproblems different in kind than small ones, due todivision of labor.
– Critical need is the preservation of the conceptualintegrity of the product itself.
![Page 10: Course Introduction and Overview of Software Engineeringtaylor/classes/211/CourseIntroduction2007.pdf · Course Introduction and Overview of Software Engineering ... –Tradeoffs](https://reader031.vdocuments.mx/reader031/viewer/2022030506/5ab3fe4d7f8b9ab47e8b8223/html5/thumbnails/10.jpg)
The Mythical Man-Monthby Fred Brooks (II) Central Conclusions
– Conceptual integrity achieved throughexceptional designer
– Implementation achieved through well-managed effort
– Brooks’s Law: Adding personnel to a lateproject makes it later
![Page 11: Course Introduction and Overview of Software Engineeringtaylor/classes/211/CourseIntroduction2007.pdf · Course Introduction and Overview of Software Engineering ... –Tradeoffs](https://reader031.vdocuments.mx/reader031/viewer/2022030506/5ab3fe4d7f8b9ab47e8b8223/html5/thumbnails/11.jpg)
No Silver Bulletby Fred Brooks Essence: the difficulties inherent in the
nature of the software
Accidents: those difficulties that todayattend its production but that are notinherent
Solution (?): Grow Great Designers
![Page 12: Course Introduction and Overview of Software Engineeringtaylor/classes/211/CourseIntroduction2007.pdf · Course Introduction and Overview of Software Engineering ... –Tradeoffs](https://reader031.vdocuments.mx/reader031/viewer/2022030506/5ab3fe4d7f8b9ab47e8b8223/html5/thumbnails/12.jpg)
Accidental Difficulties
Solutions exist– Possibly waiting to be discovered
Past productivity increases result ofovercoming– Inadequate programming constructs &
abstractions• Remedied by high-level programming languages• Increased productivity by factor of five• Complexity was never inherent in program at all
![Page 13: Course Introduction and Overview of Software Engineeringtaylor/classes/211/CourseIntroduction2007.pdf · Course Introduction and Overview of Software Engineering ... –Tradeoffs](https://reader031.vdocuments.mx/reader031/viewer/2022030506/5ab3fe4d7f8b9ab47e8b8223/html5/thumbnails/13.jpg)
Accidental Difficulties (cont’d)
Past productivity increases result ofovercoming (cont’d)– Viewing results of programming decisions took
long time• Remedied by time–sharing• Turnaround time approaching limit of human perception
– Difficulty of using heterogeneous programs• Addressed by integrated software development
environments• Support task that was conceptually always possible
![Page 14: Course Introduction and Overview of Software Engineeringtaylor/classes/211/CourseIntroduction2007.pdf · Course Introduction and Overview of Software Engineering ... –Tradeoffs](https://reader031.vdocuments.mx/reader031/viewer/2022030506/5ab3fe4d7f8b9ab47e8b8223/html5/thumbnails/14.jpg)
Essential Difficulties
Only partial solutions exist for them, ifany
Cannot be abstracted away
– Complexity– Conformity– Changeability– Intangibility
![Page 15: Course Introduction and Overview of Software Engineeringtaylor/classes/211/CourseIntroduction2007.pdf · Course Introduction and Overview of Software Engineering ... –Tradeoffs](https://reader031.vdocuments.mx/reader031/viewer/2022030506/5ab3fe4d7f8b9ab47e8b8223/html5/thumbnails/15.jpg)
Complexity
No two software parts are alike– If they are, they are abstracted away into
one Complexity grows non-linearly with size
– E.g., it is impossible to enumerate all statesof program
– Except perhaps “toy” programs
![Page 16: Course Introduction and Overview of Software Engineeringtaylor/classes/211/CourseIntroduction2007.pdf · Course Introduction and Overview of Software Engineering ... –Tradeoffs](https://reader031.vdocuments.mx/reader031/viewer/2022030506/5ab3fe4d7f8b9ab47e8b8223/html5/thumbnails/16.jpg)
Conformity
Software is required to conform to its– Operating environment– Hardware
Often “last kid on block” Perceived as most conformable
![Page 17: Course Introduction and Overview of Software Engineeringtaylor/classes/211/CourseIntroduction2007.pdf · Course Introduction and Overview of Software Engineering ... –Tradeoffs](https://reader031.vdocuments.mx/reader031/viewer/2022030506/5ab3fe4d7f8b9ab47e8b8223/html5/thumbnails/17.jpg)
Changeability
Change originates with– New applications, users, machines,
standards, laws– Hardware problems
Software is viewed as infinitelymalleable
![Page 18: Course Introduction and Overview of Software Engineeringtaylor/classes/211/CourseIntroduction2007.pdf · Course Introduction and Overview of Software Engineering ... –Tradeoffs](https://reader031.vdocuments.mx/reader031/viewer/2022030506/5ab3fe4d7f8b9ab47e8b8223/html5/thumbnails/18.jpg)
Intangibility
Software is not embedded in space– Often no constraining physical laws
No obvious representation– E.g., familiar geometric shapes
![Page 19: Course Introduction and Overview of Software Engineeringtaylor/classes/211/CourseIntroduction2007.pdf · Course Introduction and Overview of Software Engineering ... –Tradeoffs](https://reader031.vdocuments.mx/reader031/viewer/2022030506/5ab3fe4d7f8b9ab47e8b8223/html5/thumbnails/19.jpg)
Pewter Bullets
Ada, C++, Java and other high–levellanguages
Object-oriented design/analysis/programming Artificial Intelligence Automatic Programming Graphical Programming Program Verification Environments & tools Workstations
![Page 20: Course Introduction and Overview of Software Engineeringtaylor/classes/211/CourseIntroduction2007.pdf · Course Introduction and Overview of Software Engineering ... –Tradeoffs](https://reader031.vdocuments.mx/reader031/viewer/2022030506/5ab3fe4d7f8b9ab47e8b8223/html5/thumbnails/20.jpg)
Promising Attacks On Complexity(In 1987) Buy vs. Build Requirements refinement & rapid
prototyping– Hardest part is deciding what to build (or
buy?)– Must show product to customer to get
complete spec.– Need for iterative feedback
![Page 21: Course Introduction and Overview of Software Engineeringtaylor/classes/211/CourseIntroduction2007.pdf · Course Introduction and Overview of Software Engineering ... –Tradeoffs](https://reader031.vdocuments.mx/reader031/viewer/2022030506/5ab3fe4d7f8b9ab47e8b8223/html5/thumbnails/21.jpg)
Promising Attacks On Complexity(cont’d) Incremental/Evolutionary/Spiral Development
– Grow systems, don’t build them– Good for morale– Easy backtracking– Early prototypes
Great designers– Good design can be taught; great design cannot– Nurture great designers
![Page 22: Course Introduction and Overview of Software Engineeringtaylor/classes/211/CourseIntroduction2007.pdf · Course Introduction and Overview of Software Engineering ... –Tradeoffs](https://reader031.vdocuments.mx/reader031/viewer/2022030506/5ab3fe4d7f8b9ab47e8b8223/html5/thumbnails/22.jpg)
Software Architecture (andArchitects) Software Engineers have always employed
software architectures– Very often without realizing it!
Address issues identified by researchers andpractitioners– Essential software engineering difficulties– Unique characteristics of programming-in-the-
large– Need for software reuse
Many ideas originated in other (non-computing) domains
![Page 23: Course Introduction and Overview of Software Engineeringtaylor/classes/211/CourseIntroduction2007.pdf · Course Introduction and Overview of Software Engineering ... –Tradeoffs](https://reader031.vdocuments.mx/reader031/viewer/2022030506/5ab3fe4d7f8b9ab47e8b8223/html5/thumbnails/23.jpg)
Primacy of Design
Software engineers collect requirements,code, test, integrate, configure, etc.
An architecture-centric approach to softwareengineering places an emphasis on design– Design pervades the engineering activity from the
very beginning But how do we go about the task of
architectural design?
![Page 24: Course Introduction and Overview of Software Engineeringtaylor/classes/211/CourseIntroduction2007.pdf · Course Introduction and Overview of Software Engineering ... –Tradeoffs](https://reader031.vdocuments.mx/reader031/viewer/2022030506/5ab3fe4d7f8b9ab47e8b8223/html5/thumbnails/24.jpg)
The Software Industry Today
Component-Based Engineering andIntegration
Technological Heterogeneity Enterprise Heterogeneity Greater potential for Dynamic Evolution Internet-Scale Deployment
Many competing standards Much conflicting terminology
Software Engineering is in Transition
![Page 25: Course Introduction and Overview of Software Engineeringtaylor/classes/211/CourseIntroduction2007.pdf · Course Introduction and Overview of Software Engineering ... –Tradeoffs](https://reader031.vdocuments.mx/reader031/viewer/2022030506/5ab3fe4d7f8b9ab47e8b8223/html5/thumbnails/25.jpg)
Research
Topics– “(The) Future of Software Engineering
2007” Publication venues
– Journals– Conferences
“Variance of opinions”
![Page 26: Course Introduction and Overview of Software Engineeringtaylor/classes/211/CourseIntroduction2007.pdf · Course Introduction and Overview of Software Engineering ... –Tradeoffs](https://reader031.vdocuments.mx/reader031/viewer/2022030506/5ab3fe4d7f8b9ab47e8b8223/html5/thumbnails/26.jpg)
Publication Venues
Good ones– ICSE– FSE– ASE– ACM TOSEM and IEEE-TSE
Questionable ones: caveat reader– COMPSAC– (JSS)
![Page 27: Course Introduction and Overview of Software Engineeringtaylor/classes/211/CourseIntroduction2007.pdf · Course Introduction and Overview of Software Engineering ... –Tradeoffs](https://reader031.vdocuments.mx/reader031/viewer/2022030506/5ab3fe4d7f8b9ab47e8b8223/html5/thumbnails/27.jpg)
Future of SE…
Process Requirements engineering Reverse engineering Testing Maintenance and Evolution Software architecture OO Modeling SE and Middleware Tools and environments Configuration management Databases and SE SE Education
Software analysis Formal specification Mathematical foundations Reliability and Dependability Performance SE for Safety SE for security SE for mobility SE & the Internet Software economics Empirical studies of SE Software metrics