sem lecture 1_downloads

Upload: kanwal-deep

Post on 14-Apr-2018

221 views

Category:

Documents


0 download

TRANSCRIPT

  • 7/29/2019 SEM Lecture 1_Downloads

    1/20

    Software Engineering Methodologies Slide 1

    Software Engineering

    Methodologies (Introduction)

    By

    Shahbaz Pervez Chattha

    [email protected]

    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