Software engineering Software is a collection of computer programs and related data that provides the instructions for telling

a computer what to do and how to do it. it is a set of programs, procedures, algorithms and its documentation concerned with the operation of a data processing system. Program software performs the function of the program it implements, either by directly providing instructions to the computer hardware or by serving as input to another piece of software. Computer software is so called to distinguish it from computer hardware, which encompasses the physical interconnections and devices required to store and execute (or run) the software. At the lowest level, executable code consists of machine language instructions specific to an individual processor

Types of software Software includes all the various forms and roles that digitally stored data may have and play in a computer (or similar system), regardless of whether the data is used as code for a CPU, or other interpreter, or whether it represents other kinds of information. Software thus encompasses a wide array of products that may be developed using different techniques such as ordinary programming languages, scripting languages, microcode, or an FPGA configuration. The types of software include web pages developed in languages and frameworks like HTML, PHP, Perl, JSP, ASP.NET, XML, and desktop applications like, Microsoft Word developed in languages like C, C++, Objective-C, Java, C#, or Smalltalk. Application software usually runs on an underlying software operating systems such as Linux or Microsoft Windows. Software (or firmware) is also used in video games and for the configurable parts of the logic systems of automobiles, televisions, and other consumer electronics. Practical computer systems divide software systems into three major classes: system software, programming software and application software, although the distinction is arbitrary, and often blurred.  System software

System software is computer software designed to operate the computer hardware, to provide basic functionality, and to provide a platform for running application software. System software includes device drivers, operating systems, servers, utilities, and window systems. System software is responsible for managing a variety of independent hardware components, so that they can work together harmoniously. Its purpose is to unburden the application software programmer from the often complex details of the particular computer being used, including such accessories as communications devices, printers, device readers, displays and keyboards, and also to partition the computer's resources such as memory and processor time in a safe and stable manner.

quantifiable approach to the design. Programming tools are intended to assist a programmer in writing computer programs. much as one might use multiple hand tools to fix a physical object. that is. disciplined. development. ISO/IEC 12207 is an international standard for software life-cycle processes. It aims to be the standard that defines all the tasks required for developing and maintaining software. linkers. Sometimes a combination of the models may be more suitable. Similar terms include software life cycle and software process. including the internet browser being used to display this page. or otherwise support other programs and applications. The term software engineering first appeared in the 1968 NATO Software Engineering Conference and was meant to provoke thought regarding the perceived "software crisis" at the time. debuggers. It is a broad category. Programming software Programming software include tools in the form of programs or applications that software developers use to create. each describing approaches to a variety of tasks or activities that take place during the process. . Software development models Several models exist to streamline the development process. there are many specific software development processes that 'fit' the spiral life-cycle model. It is often considered a subset of systems development life cycle. and it's up to the development team to adopt the most appropriate one for the project. and the study of these approaches. It is a set of programs that allows the computer to perform a specific data processing job for the user. Some people consider a life-cycle model a more general term and a software development process a more specific term. maintain. and maintenance of software. and text editors. The term usually refers to relatively simple programs such as compilers. interpreters. Each one has its pros and cons. debug.  Application software Application software is developed to perform in any task that benefits from computation. Software engineering (SE) is the application of a systematic. and encompasses software of many kinds. and they may be combined in an integrated development environment (IDE) to more easily manage all of these functions. the application of engineering to software. For example. that can be combined together to accomplish a task. is a structure imposed on the development of a software product. There are several models for such processes. operation. Software development life-cycle (SDLC).

Waterfall discourages revisiting and revising any prior phase once it's complete.translates the users’ needs into system requirements and responsibilities Transformation 2 (design) – begins with a problem statement and ends with a detailed design that can be transformed into an operational system Transformation 3 (implementation) – refines the detailed design into the system development that will satisfy the users need. 4. Requirements specification (Requirements analysis) Software design Implementation and Integration Testing (or Validation) Deployment (or Installation) Maintenance In a strict Waterfall model. it proceeds to the next one. The exact number and nature of the particular incremental builds and what is iterated will be specific to each individual development effort.    Transformation 1 (analysis) . where developers are to follow these phases in order: 1. \  Iterative and Incremental development Iterative and Incremental development is any combination of both iterative design or iterative method and incremental build model for development. . more than one iteration of the software development cycle may be in progress at the same time. Waterfall model The waterfall model shows a process. 3. 5. Reviews may occur before moving to the next phase which allows for the possibility of changes (which may involve a formal change control process). we identify and define additional objects and classes that support implementation of the requirements. 6. where the output of one transformation becomes the input of the subsequent transformation." The relationship between iterations and increments is determined by the overall software development methodology and software development process.  Object Oriented Model Object Oriented Software development life cycle can be viewed as a transformation." and "This process may be described as an "evolutionary acquisition" or "incremental build" approach. This "inflexibility" in a pure Waterfall model has been a source of criticism by supporters of other more "flexible" models. the phase completion criteria are often referred to as a "gate" that the project must pass through to move to the next phase. "During software development. During this phase. The goal of object oriented model id to design the classes identified during the analysis phase and the user interface. after each phase is finished. Reviews may also be employed to ensure that the phase is indeed complete. 2.

the spiral model has some restrictive conditions.Iterative and incremental development are essential parts of the Modified waterfall models. and thus requires customers to accept this analysis and act on it. Finally. Implementation of the project: the implementation of software development and verification Risk-driven spiral model. but rather an adaptable processframework. In 1988. to consider how to identify and eliminate risk 3. intended to be tailored by the . which is the reason why this model is often used for large-scale internal software development. and analyze it accurately for the spiral model to work. as follows: 1. but provided emphasis in a key area many felt had been neglected by other methodologies: deliberate iterative risk analysis. the customer has to decide whether to terminate the project or to ignore the risks and continue anyway. clarify the project development restrictions 2. It follows a similar process to the plan-do-check-act cycle of business process improvement. software quality can help as a special goal of integration into the product development. the spiral model should not be used. The first stage is to formulate a plan to achieve the objectives with these constraints.[1] RUP is not a single concrete prescriptive process. Rational Unified Process. The Spiral is visualized as a process passing through some number of iterations. a division of IBM since 2003.  Rational Unified Process The Rational Unified Process (RUP) is an iterative software development process framework created by the Rational SoftwareCorporation. if necessary. Formulate plans to: identify software targets. 3. If some risks cannot be ruled out. by constructing a prototype. selected to implement the program. This requires both trust in the developer as well as the willingness to spend more to fix the issues. with the four quadrant diagram representative of the following activities: 1. The spiral model emphasizes risk analysis.Extreme Programming and generally the various agile software development frameworks. However. particularly suited to large-scale complex systems. Software developers have to actively look for possible risks. If the implementation of risk analysis will greatly affect the profits of the project. Risk analysis: an analytical assessment of selected programs. 2." which combines some key aspect of the waterfall model and rapid prototyping methodologies.  Spiral model The key characteristic of a Spiral model is risk management at regular stages in the development cycle. the results are evaluated and the design of the next phase begins. emphasizing the conditions of options and constraints in order to support software reuse. and then strive to find and remove all potential risks through careful analysis and. Barry Boehm published a formal software system development "spiral model.

construct and document the artifacts of an object-oriented software-intensive system under development. by the Object Management Group. and component modeling. UML offers a standard way to visualize a system's architectural blueprints.UML has synthesized the notations of the Booch method. business modeling (work flows). UML models may be automatically transformed to other representations (e.g. It was first added to the list of OMG adopted technologies in 1997.  Unified Modeling Language Unified Modeling Language (UML) is a standardized general-purpose modeling language in the field of object-oriented software engineering. and has since become the industry standard for modeling software-intensive systems. UML aims to be a standard modeling language which can model concurrent and distributed systems.development organizations and software project teams that will select the elements of the process that are appropriate for their needs. UML is extensible. The standard is managed. UML is used to specify. . and across different implementation technologies. UML combines techniques from data modeling (entity relationship diagrams). UML includes a set of graphic notation techniques to create visual models of object-oriented softwareintensive systems. object modeling. It can be used with all processes. and was created. modify. visualize. Java) by means of QVTlike transformation languages. throughout the software development life cycle. common and widely usable modeling language. the Object-modeling technique (OMT) and Object-oriented software engineering (OOSE) by fusing them into a single. with two mechanisms for customization: profiles and stereotypes. including elements such as:        activities actors business processes database schemas (logical) components programming language statements reusable software components. RUP is a specific implementation of the Unified Process. UML is a de facto industry standard.

Sign up to vote on this title
UsefulNot useful