THE RELATIONSHIP OF SOFTWARE ENGINEERING TO OTHER AREA

  • Slides: 24
Download presentation
THE RELATIONSHIP OF SOFTWARE ENGINEERING TO OTHER AREA OF COMPUTER SCIENCE

THE RELATIONSHIP OF SOFTWARE ENGINEERING TO OTHER AREA OF COMPUTER SCIENCE

 Programming language Central tools used in software development Having influenced how well we

Programming language Central tools used in software development Having influenced how well we can achieve our software engineering goals

 Operating systems Software should usually run on a specific operating system Need to

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

 Databases allow applications to be written that use data without worrying about the

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

 Artificial intelligence Some researchers have been trying to apply artificial-intelligence techniques to improve

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

THE SOFTWARE LIFE CYCLE Software is said to have a life cycle composed of

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

PHASES OF WATERFALL LIFE CYCLE MODEL: Requirements analysis and specification Usually the first phase

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 for the system

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

System design and specification Software engineers design a software system to meet requirements. Sometime split into two sub-phases • Architectural design: entails defining the overall organization of the system in terms of high-level components and interactions • Detailed design: components are decomposed into lower level modules with precisely defined interfaces

 Coding and module testing The engineer produces the actual code that will be

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

 Integration and system testing All the modules having been developed before and tested

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

 Delivery and maintenance Once the system passes all the tests, it is delivered

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

DEFINITION OF SOFTWARE PRODUCTION PROCESS Software production process: The process we follow to build,

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. Satisfying customer’s expectations delivering quality products on time. by

Software can be decomposed into a number of specific activities: • Feasibility study Performed

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 A feasibility study document should contain definition of problem Alternative solutions and their expected benefits Required resources, costs, and delivery dates in each proposed alternative solution

 • Designing Design is the activity through which software engineer structure the application

• 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

 • Delivery, deployment, and maintenance Delivery Distributed among a selected group of customers

• 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

PROJECT SIZE CATEGORIES CATEGORY NUMBER OF DURATION PRODUCT SIZE PROGRAMMERS Trivial 1 1 -4

PROJECT SIZE CATEGORIES CATEGORY NUMBER OF DURATION PRODUCT SIZE PROGRAMMERS Trivial 1 1 -4 weeks 500 Small 1 1 -6 months 1 K to 2 K Medium 2 to 5 1 -2 years 5 k to 50 k Large 5 to 20 2 -3 years 50 k to 100 k Very Large 100 to 1000 4 -5 years 1 M Extremely Large 2000 - 5000 5 - 10 years 1 M to 10 M

TRIVIAL PROJECTS 1 programmer working perhaps, part time. Packaged in 10 to 20 sub

TRIVIAL PROJECTS 1 programmer working perhaps, part time. Packaged in 10 to 20 sub routines. Doesn’t need a formal analysis. Conflict If personal software intended for personal use became a software product.

SMALL PEOJECTS 1 programmer packaged perhaps in 25 to 50 routines Small programs have

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

MEDIUM PROJECTS 2 to 5 programmers 250 to 1000 subroutines Have interactions with other

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

LARGE PROJECTS 5 to 20 programmers Has massive number of subroutines Applies several subsystem

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

VERY LARGE PROJECT Requires 100 to 1000 programmers 1, 000 source instructions HAS MASSIVE

VERY LARGE PROJECT Requires 100 to 1000 programmers 1, 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,

TRIVIA: According to Brooks… IBM and OS/360 was developed by 5000 programmers over a

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 codes!

EXTREMELY LARGE PROJECT Employs 2000 to 5000 programmers for a period of up to

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 control system