* Software Engineering * A Component is a tested, special purpose software unit which is reusable, adaptable, portable and interoperable. In software terms, components are also called componentware (CM). Framework is the combination of components that can be plugged into an application. A Software interface is the program that makes it possible for components to interact and interoperate with each other. Eg. JAVA BEANS ( DCOM is abbreviated as Distributed Component Object Model. ) Software Entities are the processes, requirements, products and resources of a software engineering landscape. An Engineering approach to software engineering is to produce system on time and within budget. Software Development problems are : 1) Conceptual problem. 2) Representation problem. Vanilla Framework helps to bridge gap between a high level solution, to a problem and its implementation in software. Software Requirement Specification (SRS) : This is a blueprint for the complete design of a software product. Quality Factors : correctness, reliability, maintainability, testability, efficiency, integrity, usability, portability, interoperability, reusability. Reusability Criterion : Self Descriptive : this is with natural language. Modularity : means change in one component has minimal impact on other. Portability : means transfer of software from one system to other. Platform Independence means it can execute on any type of platform. Incremental Approach to software development has been formulated by watts Humphrey. Clean Room Engineering is used to control the quality of incrementally developed software product and to certify the fitness of software products for usage at time of delivery. CAPABILITY MATURITY MODEL (CMM) : CMM describes software process management maturity relative to five levels
ie., Initial, Repeatable, Defined, Managed, Optimizing In the Initial level there is a lack of planning and the development of a clear-cut guide that software development teams can follow. Few details of a software process have been defined at this level. Good results are considered miraculous. KPA ---- Key Process Areas In the Second level ie., the CMM Repeatable Process is characterized by a commitment to discipline in carrying out a software development project. And is achieved by : Requirements management, software project planning, software project tracking and oversight, software subcontract management, software quality assurance, software configuration management. In the Third level ie., the CMM Defined Process is to guide the structuring and evaluation of a software project. And is achieved by : Organizational process focus and definition, training program, software product engineering, inter group coordination, peer reviews. In the Fourth level ie., the CMM Managed Process is for data gathering and analysis and managing software quality. And is achieved by : Quantitative process management, Software quality management. In the Fifth level ie., the CMM Optimizing Process is associated with defect prevention, automation of the software process wherever possible, and methods for improving software quality and team productivity and shortening development time. Validation occurs whenever a system component is evaluated to ensure that it satisfies system requirements. Verification consists in checking whether the product of a particular phase satisfies the conditions imposed at that phase. Software Evolution : This is characterized by genotypes and phenotypes. 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 Life-Cycle : 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. Several models (spiral, waterfall etc.) have been proposed to describe this process. Software Life-Cycle Model represents the activities, their inputs and outputs and their interactions during the life-cycle. Software Life-Cycle Models :
What is Software Engineering ? 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. What is a CASE tool ? 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 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. What is a Spiral Model ? Basically, the idea is evolutionary development, using the waterfall model for each step; it's intended to help manage risks. Don't define in detail the entire system at first. The developers should only define the highest priority features. Define and implement those, then get feedback from users/customers (such feedback distinguishes "evolutionary" from "incremental" development). With this knowledge, they should then go back to define and implement more features in smaller chunks. What is a Spec Mark? SPEC mark refers to the results of the first suite What is Hungarian Notation? A naming convention for C code. What is SEI Maturity Model? First step in improving the existing situation is to get management buy-in and management action to clean up the software management processes. Second step (Integration) is to get everyone working together as a team.
Third step (Measurements) is to establish objective ways of understanding status and predict where things are going in your process. Continuous improvement: Understand that this is building a foundation for continually getting better. What is a BUG? A Fault, Failure, Mistake. What is a Clean Room? 'Cleanroom' is a software process based on mathematical verification of components and statistical system-level testing. What is Personal Software Process? A discipline for monitoring, testing, and improving your own Software Engineering works. What are the two major types of testing? The following are the two major groups of testing i) Black Box testing ii) Glass box testing. Black Box testing: Functional or black box testing is an approach to testing where the tests are dirived 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 focusses on the functional requirements of the software i.e, Black Box testing enables the software engineer to derive sets of input conditions that will fully exercise all functiol requirements for a program. The challenge in the black box testing is to cause failures in the module by designing test causes that,with an appropriate input and controlled externally conditions,can produce an output that will clearly indicate a module failure Which Test Cases to Automate? Tests that need to be run for every build of the application. Tests that use multiple data values for the same actions (data driven tests). Tests that require detailed information from application internals. If Performed Manual Testing: Time Consuming, Low Reliability, Human Resources, Inconsistent. If Performed Automated Testing:
Speed, Repeatability, Reusability, Reliability, Programming Capabilities. What are CheckPoints ? 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. Software Production Process :The process of building ,delivering and evolving the software system from the inception of an idea all the way to the delivery and final retirement of the system is called a software production process. The so