Download - SEM Lecture 1_Downloads
-
7/29/2019 SEM Lecture 1_Downloads
1/20
Software Engineering Methodologies Slide 1
Software Engineering
Methodologies (Introduction)
By
Shahbaz Pervez Chattha
web-page:
http://web.uettaxila.edu.pk/CMS/coeSEMms/index.asp
http://web.uettaxila.edu.pk/CMS/coeSEMms/index.asphttp://web.uettaxila.edu.pk/CMS/coeSEMms/index.asp -
7/29/2019 SEM Lecture 1_Downloads
2/20
Software Engineering Methodologies Slide 2
Course titleSoftware Engineering Methodologies
Course code
Instructor: Shahbaz Pervez Chattha Semester2008
VenueClass room: 1
Credit hours: 3
Instructors Office NumberDirect: 051-9047465
Visiting hoursBy availability
Instructors [email protected]
Mode of lecture delivery:Multimedia
Course TA/: Mr. Farhan Adil ScheduleFridays 3:006:00 pm
Software Engineering Methodologies
mailto:[email protected]:[email protected]:[email protected]:[email protected]:[email protected]:[email protected] -
7/29/2019 SEM Lecture 1_Downloads
3/20
Software Engineering Methodologies Slide 3
Why Software Engineering?
Software development is hard !
Important to distinguish easy systems(onedeveloper, one user, experimental use only) fromhard systems (multiple developers, multiple users,
products)
Experience with easy systems is misleading
One person techniques do not scale up
Analogy with bridge building:
Over a stream = easy, one person job
Over River Jhelum ? (the techniques do not scale)
-
7/29/2019 SEM Lecture 1_Downloads
4/20
Software Engineering Methodologies Slide 4
Why Software Engineering ?
The problem is complexity
Many sources, but sizeis key:
UNIX contains 4 million lines of codeWindows 2000 contains 108 lines of code
Software engineering is about managingthis complexity.
-
7/29/2019 SEM Lecture 1_Downloads
5/20
Software Engineering Methodologies Slide 5
Recommended Course Textbooks
Sommerville I. (2001)
Software Engineer ing
6th Edition, Addison-Wesley, Harlow,Essex, UK
Roger S. Pressman (2000)
Software Engineering:A Practitioner's Approach,
5th edition, McGraw-Hill, USA
http://www.amazon.com/exec/obidos/ASIN/0073655783/dataprocesorg-20 -
7/29/2019 SEM Lecture 1_Downloads
6/20
Software Engineering Methodologies Slide 6
Recommended Course Textbooks
Project Management
A systems Approach to Planning, Scheduling and
Controlling.(7th
Edition)By Harold Kerzner
-
7/29/2019 SEM Lecture 1_Downloads
7/20
Software Engineering Methodologies Slide 7
Outline Syllabus
1. Introduction to Software Engineering2. Software Processes & Process Improvement
3. Software Design and Implementation
4. Software verification, validation and testing
5. Quality Assurance
6. Configuration Management
7. Metrics and measurement8. Requirements Engineering
9. Software Project Management
10. Risk Management
11. WBS Estimation & Scheduling
12. MS Project, ToolsApplications
13. Reengineering
14. Integration & Testing15. Real Time and Embedded Systems Design
16. Software Engineering in Pakistan Industry
-
7/29/2019 SEM Lecture 1_Downloads
8/20
Software Engineering Methodologies Slide 8
What is software?
Computer programs and associated documentation
Software products may be developed for a particularcustomer or may be developed for a general market
Software products may be
Generic - developed to be sold to a range of differentcustomers
Bespoke (custom) - developed for a single customeraccording to their specification
-
7/29/2019 SEM Lecture 1_Downloads
9/20
Software Engineering Methodologies Slide 9
What is software engineering?
Software engineering is an engineering discipline
which is concerned with all aspects of software
production
Software engineers should
adopt a systematic and organised approach to their work
use appropriate tools and techniques depending on
the problem to be solved, the development constraints and
the resources available
-
7/29/2019 SEM Lecture 1_Downloads
10/20
Software Engineering Methodologies Slide 10
What is the difference between software
engineering and computer science?
Computer Science Software Engineering
is concerned with
Computer science theoriesare currentlyinsufficient to act as a complete underpinning
for software engineering
theory
fundamentals
the practicalities of
developing
delivering useful software
-
7/29/2019 SEM Lecture 1_Downloads
11/20
Software Engineering Methodologies Slide 11
What is the difference between software
engineering and system engineering?
System engineering is concerned with all aspectsof computer-based systems development includinghardware, software andprocess engineering
Software engineering is part of this process
System engineers are involved in
systemspecification, architectural design,integration and deployment
-
7/29/2019 SEM Lecture 1_Downloads
12/20
Software Engineering Methodologies Slide 12
What is a software process?
A set of activities whose goal is thedevelopment or evolution of software
Generic activities in all software processes are:
Specification - what the system should do and itsdevelopment constraints
Development -production of the software system
Validation - checking that the software is what thecustomer wants
Evolution - changing the software in response tochanging demands
-
7/29/2019 SEM Lecture 1_Downloads
13/20
Software Engineering Methodologies Slide 13
What is a software process model?
A simplified representation of a software process,presented from a specific perspective
Examples of process perspectives:
Workflow perspective represents inputs, outputs and dependencies
Data-flow perspective represents data transformation activities
Role/action perspective represents the roles/activities of thepeople involved in software process
Generic process models
Waterfall Evolutionary development
Formal transformation
Integration from reusable components
-
7/29/2019 SEM Lecture 1_Downloads
14/20
Software Engineering Methodologies Slide 14
What are the costs of software
engineering?
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
-
7/29/2019 SEM Lecture 1_Downloads
15/20
Software Engineering Methodologies Slide 15
What are software engineering
methods?
Model descriptions (Descriptions of graphical
models which should be produced)
Rules (Constraints applied to system models)
Recommendations(Advice on good design practice)
Process guidance (What activities to follow)
Structured approaches to software development
which include system models, notations, rules, design
advice andprocess guidance
-
7/29/2019 SEM Lecture 1_Downloads
16/20
Software Engineering Methodologies Slide 16
What is CASE ?
(Computer-Aided Software Engineering)
Upper-CASE
Tools to support the early processactivities of requirements and design
Lower-CASETools to support later activities such as
programming, debugging and testing
Software systems which are intended to provideautomated support for software process activities, suchas requirements analysis, system modelling, debuggingand testing
-
7/29/2019 SEM Lecture 1_Downloads
17/20
Software Engineering Methodologies Slide 17
What are the attributes of good
software?
Maintainability Software must evolve to meet changing needs
Dependability
Software must be trustworthy
Efficiency Software should not make wasteful use of system resources
Usability
Software must be usable by the users for which it was designed
The software should deliver the required functionality
and performance to the user and should be
maintainable, dependable and usable
-
7/29/2019 SEM Lecture 1_Downloads
18/20
Software Engineering Methodologies Slide 18
What are the key challenges
facing software engineering?
Software engineering in the 21st century faces
three key challenges:
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
-
7/29/2019 SEM Lecture 1_Downloads
19/20
Software Engineering Methodologies Slide 19
Professional and ethical
responsibility
Software engineering involves wider responsibilitiesthan simply the application of technical skills
Software engineers must behave in an honest andethically responsible way if they are to be respectedas professionals
Ethical behaviour is more thansimply upholding the law
-
7/29/2019 SEM Lecture 1_Downloads
20/20
Software Engineering Methodologies Slide 20
Next lecture
Software Processes