Presentation is loading. Please wait.

Presentation is loading. Please wait.

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

Similar presentations


Presentation on theme: " Programming language Central tools used in software development Having influenced how well we can achieve our software engineering goals."— Presentation transcript:

1

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

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

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

13 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 customer’s 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 CATEGORY NUMBER OF PROGRAMMERS DURATIONPRODUCT SIZE Trivial11-4 weeks500 Small11-6 months1K to 2K Medium2 to 51-2 years5k to 50k Large5 to 202-3 years50k to 100k Very Large100 to 10004-5 years1 M Extremely Large 2000 - 50005 - 10 years1M to 10M

18  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.

19  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  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  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  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 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  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 _______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  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  Portability  Reliability  Efficiency  Accuracy  Robustness  Correctness

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

33  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  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  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  CASE stands for Computer Aided Software Engineering; it can be used to mean any computer-based tool for software planning, development, and evolution.  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  A Fault, Failure, Mistake.  'Clean room' is a software process based on mathematical verification of components and system-level testing.

38  The following are the two major groups of testing i) Black Box testing ii) White Box testing.

39  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  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  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  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

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  Democratic – team members participates in decision making.

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

46  Hierarchical Team Structure Junior Programmers Senior Programmers Project Leader

47 CLEAN ROOMPORTABILITY BLACK BOXBUG FUNCTION POINTROBUSTNESS EFFICIENCYSOFTWARE ENTITIES SOFTWARE REQUIREMENT SPECS. FRAMEWORK

48  Normalization  All normal forms  How to normalize many to many relation  What is a procedure Give one example?


Download ppt " Programming language Central tools used in software development Having influenced how well we can achieve our software engineering goals."

Similar presentations


Ads by Google