1 / 48

The relationship of software engineering to other area of computer science

Explore the relationship of software engineering to other areas of computer science, such as programming languages, operating systems, databases, and artificial intelligence. Learn about the phases of the software life cycle and the software production process. Discover different project size categories and their implications. This text is written in English.

gwynethj
Download Presentation

The relationship of software engineering to other area of computer science

An Image/Link below is provided (as is) to download presentation Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author. Content is provided to you AS IS for your information and personal use only. Download presentation by click this link. While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server. During download, if you can't get a presentation, the file might be deleted by the publisher.

E N D

Presentation Transcript


  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. 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 The software life cycle

  7. 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 Phases of waterfall life cycle model:

  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. 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. Definition of software production process Satisfy customer’s expectations by delivering quality products on time.

  13. 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

  14. • 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

  15. 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

  16. PROJECT SIZE CATEGORIES

  17. 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. Trivial PROJECTS

  18. 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 SMALL PEOJECTS

  19. 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 MEDIUM PROJECTS

  20. 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 LARGE PROJECTS

  21. 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. Very large project

  22. 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! TRIVIA:

  23. 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 Extremely large project

  24. 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

  25. _______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. Analysis

  26. _______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.

  27. 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. Some considerations in software engineering

  28. 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.

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

  30. Portability Reliability Efficiency Accuracy Robustness Correctness Major software Quality Factors

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

  32. 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. Software Evolution

  33. 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. Software Life-Cycle

  34. 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. Software Engineering approach

  35. 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 CASE tool ? 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.

  36. A Fault, Failure, Mistake. What is a BUG? What is a Clean Room? • 'Clean room' is a software process based on mathematical verification of components and system-level testing.

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

  38. 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. Black Box testing

  39. 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 White box testing:

  40. 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. What are Check Points?

  41. 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 algorithm’s 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 Levels of testing

  42. 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

  43. Democratic – team members participates in decision making. Programming team structure

  44. Chief programmer – assisted and supported by the team members. Chief programmer Back-up program consultant Librarian Junior Programmer

  45. Hierarchical Team Structure Senior Programmers Project Leader Junior Programmers Junior Programmers

  46. CLEAN ROOM PORTABILITY BLACK BOX BUG FUNCTION POINT ROBUSTNESS EFFICIENCY SOFTWARE ENTITIES SOFTWARE REQUIREMENT SPECS. FRAMEWORK Data bank

  47. Normalization All normal forms How to normalize many to many relation What is a procedure Give one example? assignment

More Related