Lecture 2 ASE

Embed Size (px)

Citation preview

  • 8/3/2019 Lecture 2 ASE

    1/21

  • 8/3/2019 Lecture 2 ASE

    2/21

    What is Software Engineering?

    An engineering discipline. Covers all aspects of software production

    From system specification to maintenance.

    Engineering: Selective selection of theories, tools and methods to

    discover solutions to problems.

    It is working under organizational and financialconstraints.

    All aspects: Not only technical but also SW project management

    and development of tools etc.

  • 8/3/2019 Lecture 2 ASE

    3/21

    SE vs. CS

    CS is concerned with theory and

    fundamentals.

    SE is concerned with the practicalities ofdeveloping and delivering useful software.

    Ideally, all of SE should have a strong CS basis,

    but this doesnt happen every time ad hoc

    approaches

  • 8/3/2019 Lecture 2 ASE

    4/21

    System engineering vs. SE

    System engineering

    Concerned with all aspects of the development

    and evolution of complex systems where software

    plays a major role.

    Hardware development, policy and process

    design, system deployment, SE.

    E.g. air craft and chemical plants.

  • 8/3/2019 Lecture 2 ASE

    5/21

    Software process

    A set of activities and associated results thatproduce a software product.

    Four fundamental process activities:

    Software specification Requirements

    Software development Design and program

    Software validation Testing

    Software evolution Maintenance

  • 8/3/2019 Lecture 2 ASE

    6/21

    Software process model

    A simplified description of a software process.

    Three general software process models:

    The waterfall approach

    The four process activities are represented as separate processphases (reqt specification, sw design, implementation, testing ).

    After each phase is defined, it is signed-off and development goesto the following phase.

    Iterative development

    Interleaving of the four process activities. Improvement in software in subsequent iterations.

    Component-based software engineering

    Integrating already developed parts of the system.

  • 8/3/2019 Lecture 2 ASE

    7/21

    7

    Nature of Software

    System software

    Application software

    Engineering/scientific

    software

    Embedded software

    Web applications

    AI software

    Operating systems

    To solve specific need

    To deal with calculations

    Resides within the product

    a set of linked hypertext files

    to present information

    Uses algorithms to solve

    complex problems

    Broad categories of computer software are:

  • 8/3/2019 Lecture 2 ASE

    8/21

    8

    System & Application Software

  • 8/3/2019 Lecture 2 ASE

    9/21

    9

    System Software

    The software that is an essential part of thecomputer system

    A collection of programs written to service other

    programs

    Compilers, editors, file management utilities

    System software heavily interact with computer

    hardware

    Operating system

    Resource sharing

  • 8/3/2019 Lecture 2 ASE

    10/21

    10

    Application Software

    Consists of standalone programs to solvespecific need

    Also called end-user programs includes

    database programs, word processors, andspreadsheets

    Applications software sits on top of systems

    software because it is unable to run without

    the operating system

  • 8/3/2019 Lecture 2 ASE

    11/21

    11

    Engineering/ Scientific Software

    Deals with algorithms, Scientificnotations

    Automotive stress analysis to space shuttle

    orbital dynamics Molecular technology to automotive

    manufacturing

  • 8/3/2019 Lecture 2 ASE

    12/21

    12

    Embedded Software

    Resides with in a product or system and

    used to implement and control the

    feature and function of the system Can perform a limited functions

    Microwave oven

    Fuel control Temperature control

  • 8/3/2019 Lecture 2 ASE

    13/21

    13

    Web Applications

    WebApp a wide variety of applications can be a set of linked hypertext files that

    present information using text and graphics

    As e-commerce integrate corporatedatabases and business application

  • 8/3/2019 Lecture 2 ASE

    14/21

    14

    Artificial Intelligence Software

    Uses algorithms to solve complex problems

    Applications in this area includes

    Robotics

    Expert system Pattern recognition

    Neural networks

  • 8/3/2019 Lecture 2 ASE

    15/21

    15

    Legacy Software

    Legacy software systems are programs that are oftencritical to the operation of companies

    These programs were developed years ago and, use early

    programming languages such as COBOL and FORTRAN

    These programs have been maintained for many years

    by various programmers

    Because of the years of changes that have been made tothe software, supporting documentation may not be

    current and the authors may no longer be available

    Without either the full documentation, or the personnel whounderstand the code, changes to these programs can be hard

    to accomplish, expensive, and should not be taken lightly

  • 8/3/2019 Lecture 2 ASE

    16/21

    16

    Legacy Software

    software must be adapted to meet the needs

    of new computing environments or

    technology.

    software must be enhanced to implementnew business requirements.

    software must be extended to make it

    interoperable with other more modern

    systems or databases. software must be re-architected to make it

    viable within a network environment.

    Why must it change?

  • 8/3/2019 Lecture 2 ASE

    17/21

    17

    Software Myths

    Rumors. Half-truths. Cautionary tales A significant number of "myths" surround software quality,

    development and testing practices

    Affect managers, customers and practitioners

    Are believable because they often have elements oftruth,

    but

    Invariably lead to bad decisions,

    therefore Insist on reality as you navigate your way through

    software engineering

  • 8/3/2019 Lecture 2 ASE

    18/21

    Software myths

    Three types of myths:

    Management myth

    Customer myth Practitioner/Developer myth

  • 8/3/2019 Lecture 2 ASE

    19/21

    Management myths

    We have standards and procedures for building

    software, so developers have everything they

    need to know.

    We have state-of-the-art software

    development tools; after all, we buy the latest

    computers.

    If we're behind schedule, we can add moreprogrammers to catch up.

    A good manger can manage any project.

  • 8/3/2019 Lecture 2 ASE

    20/21

    Customer myths

    A general statement of objectives is sufficient

    to begin writing programs - we can fill in the

    details later.

    Requirement changes are easy toaccommodate because software is flexible.

    I know what my problem is; therefore I know

    how to solve it.

  • 8/3/2019 Lecture 2 ASE

    21/21

    Practitioner/Developer myths

    If I miss something now, I can fix it later.

    Once the program is written and running, my job

    is done.

    Until a program is running, there's no way ofassessing its quality.

    The only deliverable for a software project is a

    working program.