The relationship of software engineering to other area of computer science - PowerPoint PPT Presentation

About This Presentation
Title:

The relationship of software engineering to other area of computer science

Description:

The relationship of software engineering to other area of ... – PowerPoint PPT presentation

Number of Views:302
Avg rating:3.0/5.0
Slides: 49
Provided by: Mark1183
Category:

less

Transcript and Presenter's Notes

Title: The relationship of software engineering to other area of computer science


1
The relationship of software engineering to
other area of computer science
2
  • Programming language
  • Central tools used in software development
  • Having influenced how well we can achieve our
    software engineering goals

3
  • Operating systems
  • Software should usually run on a specific
    operating system
  • Need to consider if the software can work well
    with a specific operating system

4
  • Database
  • Databases allow applications to be written that
    use data without worrying about the underlying
    representation of the data
  • Allow database systems to be used as components
    of large software systems

5
  • Artificial intelligence
  • Some researchers have been trying to apply
    artificial-intelligence techniques to improve
    software engineering

6
The software life cycle
  • Software is said to have a life cycle composed of
    several phases.
  • waterfall model - the process structures the
    activities as a linear cascade of phases, in
    which the output of one phase flows as the input
    to the next one. Each phase has well-defined
    starting and ending points, with clearly
    identifiable deliverables to the next phase

7
Phases of waterfall life cycle model
  • Requirements analysis and specification
  • Usually the first phase of a large-scale
    software development project
  • Purpose of this phase is to identify and
    document the exact requirements of the system

8
  • System design and specification
  • Software engineers design a software system to
    meet requirements.

9
  • Coding and module testing
  • The engineer produces the actual code that will
    be delivered to the customer as the running
    system
  • Individual modules developed in the coding
    phase are tested before being delivered to the
    next phase

10
  • Integration and system testing
  • All the modules having been developed before
    and tested individually are put
    together-integrated-in this phase and are tested
    as a whole system

11
  • Delivery and maintenance
  • Once the system passes all the tests, it is
    delivered to the customer and enters the
    maintenance phase. All modifications made to the
    system after the initial delivery are usually
    attributed to this phase

12
(No Transcript)
13
Definition of software production process
  • Software production process
  • The process we follow to build, deliver, deploy
    and evolve the software product, from the
    inception of an idea all the way to the delivery
    and final retirement of the system.

Satisfy customers expectations by delivering
quality products on time.
14
  • Software can be decomposed into a number of
    specific activities
  • Feasibility study
  • Performed before the production process actually
    starts, to support the decision of weather a new
    development should be started.
  • Its goal is to provide a feasibility study
    document, which represents different scenarios
    and alternative solutions.
  • The feasibility study document should contain
  • A definition of problem
  • Alternative solutions and their expected benefits
  • Required resources, costs, and delivery dates in
    each proposed alternative solution

15
  • Designing
  • Design is the activity through which software
    engineer structure the application at different
    levels of detail.
  • The result is a design specification document,
    which contains a description of the software
    architecture, including
  • The system in terms of its components
  • Their interfaces,
  • Their interconnections

16
  • Delivery, deployment, and maintenance
  • Delivery
  • Distributed among a selected group of customers
    prior to its official release, also called beta
    testing
  • Deployment
  • It defines the physical run-time architecture
  • Maintenance
  • A set of activities performed to modify the
    system after it is delivered to the customer

17
PROJECT SIZE CATEGORIES
CATEGORY NUMBER OF PROGRAMMERS DURATION PRODUCT SIZE
Trivial 1 1-4 weeks 500
Small 1 1-6 months 1K to 2K
Medium 2 to 5 1-2 years 5k to 50k
Large 5 to 20 2-3 years 50k to 100k
Very Large 100 to 1000 4-5 years 1 M
Extremely Large 2000 - 5000 5 - 10 years 1M to 10M
18
Trivial PROJECTS
  • 1 programmer working perhaps, part time.
  • Packaged in 10 to 20 sub routines.
  • Doesnt need a formal analysis.
  • Conflict
  • If personal software intended for personal use
    became a software product.

19
SMALL PEOJECTS
  • 1 programmer
  • packaged perhaps in 25 to 50 routines
  • Small programs have no interaction at all.
  • Client interaction.
  • Do have standards.
  • Development Notation
  • Documentation
  • Reviews

20
MEDIUM PROJECTS
  • 2 to 5 programmers
  • 250 to 1000 subroutines
  • Have interactions with other programs!
  • Do also have client and developer interaction.
  • Advantage
  • has a vastly improved product quality

21
LARGE PROJECTS
  • 5 to 20 programmers
  • Has massive number of subroutines
  • Applies several subsystem
  • Example
  • 1. Compiler
  • 2. Database Package
  • 3. Graphics Program
  • 4. Real-time control system

22
Very large project
  • Requires 100 to 1000 programmers
  • 1,000,000 source instructions
  • HAS MASSIVE NUMBER OF SUBROUTINES and SUBSYSTEMS
    which forms a LARGE SYSTEM!
  • Involves real-time processing, telecommunication
    and multitasking!
  • Example
  • LARGE SCALE OS, LARGE DB SYSTEM, AND MILITARY
    COMMAND CONTROL SYSTEM.

23
TRIVIA
  • According to Brooks
  • IBM and OS/360 was developed by 5000 programmers
    over a period of 5 years and contained more that
    1,000,000 codes!

24
Extremely large project
  • Employs 2000 to 5000 programmers for a period of
    up to 10 years and results in 1 to 10 million
    lines of codes.
  • It involves LIFE-and-DEATH processes
  • Example
  • air traffic control
  • ballistic missile defense
  • military command and control system

25
The phases of WATERFALL life cycle model A.
Requirement analysis and specifications B.
System design and specifications C. Coding and
module testing D. Integration and system
testing E. Delivery and maintenance
26
Analysis
  • _______1. They are the activities through which
    we actually write programs using a programming
    language.
  • _______ 2. In this phase, all system modules will
    be integrated together and tested as a whole.
  •  
  • _______ 3. In this phase, software engineers
    produced the actual code that will be delivered
    to the customer as running system.
  •  
  • _______ 4. Once the system has passed all the
    tests conducted, it will be delivered to the
    clients and then proceeds to the maintenance
    phase.
  • _______ 5. It usually the first phase of a
    large-scale software development project.

27
  • _______6. In this phase, individual modules
    developed in the coding phase are tested before
    being delivered to the next phase.
  •  
  • _______7. All modifications made to the system
    after the initial delivery is usually attributed
    to this phase.
  • _______8. In this phase, software engineers
    design the system to meet the requirements and
    specifications of the clients.
  • _______ 9. This phase includes the architectural
    and detailed design of software development.
  • _______ 10. The purpose of this phase is to
    identify and document the exact requirements of
    the system.
  •  
  •  

28
Some considerations in software engineering
  • A Component is a tested, special purpose software
    unit which is reusable, adaptable and portable.
    In software terms, components are also called
    component ware (CM).
  • Framework is the combination of components that
    can be plugged into an application.

29
  • A Software interface is the program that makes it
    possible for components to interact and
    interoperate with each other.
  • Eg. JAVA BEANS
  • Software Entities are the processes,
    requirements, products and resources of a
    software engineering landscape.

30
  • Software Requirement Specification (SRS) This
    is a blueprint for the complete design of a
    software product.

31
Major software Quality Factors
  • Portability
  • Reliability
  • Efficiency
  • Accuracy
  • Robustness
  • Correctness

32
Reusability Criterion
  • Portability means transfer of software from one
    system to other.
  • Platform Independence means it can execute on any
    type of platform.

33
Software Evolution
  • A genotype provides information about a member of
    a population.
  • A phenotype characterizes the behavior of a
    population member.
  • Evolution pattern where why what when
    how by-whom.

34
Software Life-Cycle
  • This is the period of time beginning with a
    concept for a software product and ending
    whenever the software is no longer available for
    use.
  • The Software life-cycle typically includes the
    following
  • Requirements, Analysis, Design, construction,
    testing (Validation), installation, operation,
    maintenance, and retirement.

35
Software Engineering approach
  • The application of a systematic, disciplined,
    quantifiable approach to development, operation,
    and maintenance of software that is, the
    application of engineering to software.
  • The specification, development, management, and
    evolution of software systems.
  • A discipline whose aim is the production of
    quality software, delivered on time, within
    budget, and satisfying users' needs.
  • Designing and developing high-quality software.
    Application of computer science techniques to a
    variety of problems.

36
What is a CASE tool ?
  • CASE stands for Computer Aided Software
    Engineering it can be used to mean any
    computer-based tool for software planning,
    development, and evolution.

What is a Function Point ?
  • Function points and feature points are methods of
    estimating the "amount of functionality" required
    for a program, and are thus used to estimate
    project completion time. The basic idea involves
    counting inputs, outputs, and other features of a
    description of functionality.

37
What is a BUG?
  • A Fault, Failure, Mistake.

What is a Clean Room?
  • 'Clean room' is a software process based on
    mathematical verification of components and
    system-level testing.

38
What are the two major types of testing?
  • The following are the two major groups of testing
  • i) Black Box testing
  • ii) White Box testing.

39
Black Box testing
  • Functional or black box testing is an approach to
    testing where the tests are derived from the
    program or component specification.
  • The system is a black box whose behavior can only
    be determined by studying its inputs and the
    related outputs.
  • Another name for this is the functional testing
    because the tester is only concentrated with the
    functionality and not the implementation of the
    software.

40
White box testing
  • Using white box testing methods, the software
    engineer can derive test cases that do the
    following
  • Guarantee that all independent paths with in a
    module have been executive once at least.
  • Exercise all logical decisions on their true and
    false sides
  • Exercise all loops, data flow, conditional
    testing are working

41
What are Check Points?
  • Checkpoints enable you to compare the current
    behavior of your application to its expected
    behavior.
  • GUI checkpoints check information about GUI
    objects. For example, you can check that a button
    is enabled or see which item is selected in a
    list.
  • Database checkpoints check the data content in a
    database.
  • Text checkpoints read text in GUI objects and
    in bitmaps, and enable you to check their
    contents.
  • Bitmap checkpoints compare a "snapshot" of a
    window or an area in your application to an image
    captured in an earlier version.

42
Levels of testing
  • Unit testing
  • Generally the code which is generated is
    compiled. The unit test is white box oriented and
    the steps can be conducted in parallel for
    multiple components.
  • 1. The module Interface is tested to ensure that
    information properly flows into and out of the
    program unit under test.
  • 2. The local data structure is examined to ensure
    that data stored temporarily maintains its
    integrity during all steps in an algorithms
    execution.
  • 3. Boundary conditions are tested to ensure that
    the module operates properly at boundaries
    established to limit and restrict processing
  • 4. All the statements are executed at least once
    and error handling paths are tested

43
  • Integration testing-
  • Integration testing is a systematic technique for
    constructing the program structure .In
    integration test you have like
  • Top down
  • Bottom up
  • Regressive
  • Performance testing
  • Recovery testing
  • Security Testing
  • Acceptance Testing

44
Programming team structure
  • Democratic team members participates in
    decision making.

45
  • Chief programmer assisted and supported by the
    team members.

Chief programmer
Back-up program consultant
Librarian
Junior Programmer
46
  • Hierarchical Team Structure

Senior Programmers
Project Leader
Junior Programmers
Junior Programmers
47
Data bank
  • CLEAN ROOM PORTABILITY
  • BLACK BOX BUG
  • FUNCTION POINT ROBUSTNESS
  • EFFICIENCY SOFTWARE ENTITIES
  • SOFTWARE REQUIREMENT SPECS.
  • FRAMEWORK

48
assignment
  • Normalization
  • All normal forms
  • How to normalize many to many relation
  • What is a procedure Give one example?
Write a Comment
User Comments (0)
About PowerShow.com