Professional Documents
Culture Documents
What is a Software ?
Software is (1)instructions (computer programs) that when executed provide desired function and performance, (2)(2) data structures that enable the programs to adequately manipulate information, (3) and documents that describe the operation and use of the programs.
Software Characteristics
When hardware is built, the human creative process (analysis, design, construction, testing) is ultimately translated into a physical form. If we build a new computer, our initial sketches, formal design drawings, and breadboarded prototype evolve into a physical product (chips, circuit boards, power supplies, etc.)
Software is a logical rather than a physical system element. Therefore, software has the following characteristics that are considerably different than those of hardware: 1. Software is developed or engineered, it is not manufactured in the classical sense. 2. Software doesn't "wear out. 3. Although the industry is moving toward component-based assembly, most software continues to be custom built.
Software Characteristics
Software Applications
1. System software 2. Real-time software 3. Business software. 4. Engineering and scientific software. 5. Embedded software. 6. Personal computer software. 7. Web-based software. 8. Artificial intelligence software.
Ad hoc development.
GO TO statements makes control structure of a program messy. GO TO statements alter the flow of control arbitrarily. The need to restrict use of GO TO statements was recognized. But many Programmers considered use of GO TO statements inevitable.
Structured programs
Structured programs are: Easier to read and understand, Easier to maintain, Require less effort and time for development. Programmers commit less number of errors while using if-then-else and do-while statements compared to test-and-branch constructs.
Computers became more powerful and used to solve complex problems Soon it was discovered that: It is important to pay more attention to the design of data structures of a program than to the design of its control structure. Design technique based on this principle is called data structure oriented design.
In this technique, first design programs data structure and program design is derived from the data structures. An example of data structure-oriented design technique: Jackson's Structured Programming(JSP) methodology Developed by Michael Jackson in 1970s.
As computers became faster and more powerful: * More effective techniques were needed * Soon developed data flow oriented design * Data flow-oriented techniques advocate: 1. The data items input to a system must first be identified,
2. Processing required on the data items to produce the required outputs should be determined. 3. Identifies different processing stations (functions) in a system. 4. Identifies the items (data) that flow between processing stations
ObjectObject-Oriented Design
Object-Oriented Techniques have gained wide acceptance: Simplicity Reuse possibilities Lower development time and cost More robust code Easy maintenance
A written description: Forms a common understanding of activities among the software developers. Helps in identifying inconsistencies, redundancies, and omissions in the development process. Helps in tailoring a process model for specific projects. Primary advantage of using a life cycle model is that it Helps development of software in a systematic and disiplined manner.
Life Cycle Model (CONT.) It becomes easier for software project managers:
to monitor the progress of the project. the project manager can at any time fairly accurately tell, at which stage (e.g., design, code, test, etc. ) of the project is.