Documenti di Didattica
Documenti di Professioni
Documenti di Cultura
These slides introduce software engineering and explain its importance in dealing with large software systems.
Provide answers to key questions about software design and development as part of software engineering discipline.
Kamran Sartipi
Software systems
The impact of software systems on modern society and technology for 50 years.
Process automation: automobile industry; renery; software product family for electronic devices; telephony and switching systems
Equipment control: embedded systems in different electronic devices such as home appliances; automobile control gadgets
Scientic problems: differential equations; matrix operations; model checking; searching algorithms; information system manipulation
Entertainment industry: gaming; graphics; movies; music
Education and ofce management: distance education; word processors; databases; spreadsheets; slide presenters
Kamran Sartipi
Software systems
Kamran Sartipi
million
Software engineering tackles the software crisis by providing disciplined processes and methodologies to design, implement, and maintain large systems.
Introduction to Software Engineering
Kamran Sartipi
What is software?
What is software engineering?
What is the difference between software engineering and computer science?
What is the difference between software engineering and system engineering?
What is a software process?
What is a software process model?
Kamran Sartipi
Software engineering
Kamran Sartipi
What is software?
Kamran Sartipi
Kamran Sartipi
Kamran Sartipi
Computer science is concerned with theory and fundamentals; software engineering is concerned with the practicalities of developing and delivering useful software
Computer science theories are currently insufcient to act as a complete underpinning for software engineering
Kamran Sartipi
System engineering is concerned with all aspects of computer-based systems development including hardware, software and process engineering. Software engineering is part of this process
System engineers are involved in system specication, architectural design, integration and deployment
Kamran Sartipi
Kamran Sartipi
Kamran Sartipi
Roughly 60% of costs are development costs, 40% are testing costs. For custom software, evolution costs often exceed development costs
Costs vary depending on the type of system being developed and the requirements of system attributes such as performance and system reliability
Distribution of costs depends on the development model that is used
Kamran Sartipi
Structured approaches to software development which include system models, notations, rules, design advice and process guidance
Model descriptions
Descriptions of graphical models which should be produced
Constraints applied to system models
Advice on good design practice
What activities to follow
Rules
Recommendations
Process guidance
Kamran Sartipi
Software systems which are intended to provide automated support for software process activities. CASE systems are often used for method support
Upper-CASE
Tools to support the early process activities of requirements and design
Tools to support later activities such as programming, debugging and testing
Lower-CASE
Kamran Sartipi
Dependability
Efciency
Usability
Kamran Sartipi
Coping with legacy systems, coping with increasing diversity and coping with demands for reduced delivery times
Legacy systems
Old, valuable systems must be maintained and updated
Heterogeneity
Systems are distributed and include a mix of hardware and software
Delivery
There is increasing pressure for faster delivery of software
Kamran Sartipi