Posts

Showing posts with the label software engineering

OBJECTIVES OF SOFTWARE ENGINEERING

Image
While developing software we should remember these points in mind, to develop highly recommended software: MAINTAINABILITY: Software is should be maintainable, in the market whenever we launch a new product then the customer will buy it only if it is easy to maintain. That is also a reason why people are using drag & dropping website builders in place of coding, it's only because they found it easy to maintain a website using WordPress, Joomla, ghost, etc. INTEROPERABILITY: Two or more functional units can process data cooperatively when we are dealing with large projects which have integration between different components of a system where the need for interoperability is very high. CORRECTNESS: Customers want an error or bug-free software that processes a user's request in a very fast way and fulfill all of the user's requirements. RELIABILITY: Software should be reliable, it means that the software which a customer buys with their hard-earned money makes the life of ...

DESIGN METHODS

Image
It refers to the methods which we use to design our software system. There are some design methods available to design our system like data design, architectural design, and human-computer interface design. DATA DESIGN It is the first design activity, which results in a less complex, modular, and efficient program structure. The information model developed during the analysis phase is transformed into the data structure needed for implementing the software. During the data design process, data types are specified along with the integrity rules required for the data. ARCHITECTURAL DESIGN Software design represents the structure of data and program components that are required to build a computer-based system. It is not an operational software but a representation. Architecture design: systems that interoperate with the target system are represented as – SUPER ORDINATE SYSTEM- using the target system as part of some higher-level processing scheme. SUBORDINATE SYSTEM- used by the tar...

DESIGN HEURISTICS

HEURISTICS EVALUATION is a process of thorough evaluation or assessment where the expert in a particular domain, is used to measure the usability of the user interface. HOW TO CONDUCT HEURISTIC EVALUATION Define the scope of the evaluation. Know the end user. Choose your set of heuristics. Setting up an evaluation system and identifying issues. Analyze and summarize the results. ADVANTAGES: Reveals many hidden usability problems. It helps to determine the overall user experience. Heuristics evaluation can be combined with usability testing. Better heuristics evaluation helps to engage more users. It is cheaper and faster than conducting full-blown usability testing. DISADVANTAGES: Sometimes it is a bit harder for even experts to figure out some problems. It becomes hard to find experts to conduct the heuristics evaluation. Faults in design will affect the engagement of users in the product. Heuristics testing depends on the expert level of only a few experts.

EFFECTIVE MODULAR DESIGN

The process of breaking down software into multiple independent modules where each module is developed separately is called modularization. BENEFITS OF MODULAR DESIGN Allows Reusability Workload Handling Easier Debugging Abstraction Confidentiality MODULARIZATION IS ACHIEVED BY- COHESION: Cohesion is a measure of strength in the relationship between various functions with a module. COUPLING: Coupling is a measure of strength in the relationship between various modules within a software. ** A good software design requires high cohesion and low coupling.

DESIGN CONCEPTS

ABSTRACTION: Hide irrelevant data from user so that our design become much more secure. MODULARITY: Sub-divide the system to follow an object-oriented design methodology. ARCHITECTURE: Design the structure of the whole software. REFINEMENT: Remove impurities from the software by debugging and checking security threads & breaches. PATTERN: A repeated form of pattern in the whole design so that the user will find it easier to do work on it. INFORMATION HIDING: Information in one module is hidden and can’t be accessed by any other module. REFACTORING: Reconstruct something i.e, updation. Reconstructing the design to reduce complexity and simplify it without affecting the behavior or its functions.

DESIGN PRINCIPLES

PROBLEM PARTITIONING: Divide the problem and conquer the problem it means to divide the problem into smaller pieces so that each can be captured separately. ABSTRACTION: The process of hiding certain details and showing only essential information to the user. MODULARITY: It specifies the division of software into separate modules which are differently named, addressed, and integrated later on in to obtain completely functional software. STRATEGY OF DESIGN: To design a system, there are two possible approaches- Top-Down Approach: main components and then sub-components designed Bottom-Up Approach: sub-components and then integrate them to obtain the main component.

DATA DICTIONARY

Image
A data dictionary is a structured repository of data about data. It is a set of rigorous definitions of all Data Flow diagrams (DFD) data elements and data structures. ADVANTAGES OF DATA DICTIONARIES: Documentation Improved Communication. Common base for programmers to compare their data descriptions and make necessary changes.

MECHANISM OF STRUCTURED ANALYSIS

STRUCTURED ANALYSIS: It is a software engineering technique that uses graphical diagrams to develop and portray system specifications that are easily understood by the user. This type of analysis mainly focuses on logical systems and functions and aims to convert business requirements into computer programs and hardware specifications. STEPS IN STRUCTURED ANALYSIS: Studying the current business environment. Modeling the old logical system. Modeling a new logical system. Modeling a new physical environment. Evaluating alternatives. Selecting the best design. Creating structured specifications.

PROJECT ENGINEERING REQUIREMENT ANALYSIS MODELING

Image
ANALYSIS CONCEPTS & PRINCIPLES The information domain must be represented and understood. The function must be defined. The behavior of software must be represented. Models that depict information, function, and behavior must be segregated in a manner that uncovers details in a layered manner. The analysis process must move from essential information to implementation details. FUNCTIONAL MODELLING : It provides the outline that what the system is supposed to do. It does not describe what is the need o evaluation of data, when they are evaluated, and how they are evaluated apart from all it only represents the origin of data values. It describes the function of the internal process with the help of DFD (Data Flow Diagram). INFORMATION FLOW MODELING : It distinguishes the discrete processing stage within the process, and describes how information flows through the system. BEHAVIOR MODEL : It is specially designed to make us understand behavior and factors that influence the behavior ...

ELEMENTS OF ANALYSIS MODEL

The analysis Model is a technical representation of the software. It acts as a link between system description and design model. DATA DICTIONARY: It is a repository that consists of a description of all data objects used or produced by the software. ENTITY RELATIONSHIP DIAGRAM (ERD): It depicts the related activities. The attributes of each object in the Entity Relationship Diagram can be described using data object description. DATA FLOW DIAGRAM (DFD): It depicts the functions that transform data flow and it also shows how data is transformed when moving from input to output. STATE TRANSITION DIAGRAM (STD): It shows various modes of behavior (states) of the system and also shows the transitions from one state to another state in the system. PROCESS SPECIFICATION: It stores the description of each function present in the Data Flow Diagram (DFD). It describes the input to a function, the algorithm, that is applied to the input, and the output, that is produced. CONTROL SPECIFICATION: It...

INFORMATION STRATEGIC PLANNING

It is a process of conducting full-fledged strategic planning in the information domain. It is very beneficial from small firms to enterprises and from enterprises to multinational companies. INITIATE INFORMATION STRATEGY PLANNING PROJECT: First we will gather all the required or eligible persons of our organization in form of a board meeting, jam session, or a routing group discussion. At that place, while maintaining confidentiality we will conduct the other upcoming steps. IDENTIFY YOUR BUSINESS POSITION: Analyzing our available data which will help us a lot in finding our current business position like what we can afford, we can go to how much extent on a particular topic, do we have competitors, what should we do to get more customers, etc. EXAMINE CAPABILITIES & TECHNOLOGIES: First, examine our capabilities and technology so that we can get an idea of what we are eligible to do. Generally, it requires technical experts from different areas so that they will examine and sugges...

INFORMATION ENGINEERING

It is a combination of data analysis and planning where we use a standard procedure in order to form a perfect and suitable plan for a particular task. It has several steps so that it becomes easy for professionals to do. STRATEGIC BUSINESS PLANNING: First of all we have to prepare a strategy for our business planning. Here we analyze the present situation in our business with board members, executives, and associates. Then we create a strategic plan on how to tackle a particular problem or situation. DATA MODELLING: We conduct all different types of activities to conclude how data will flow in the system. Like as a data flow diagram, state transition diagram, entity relationsip diagram, etc. At last, we come to a final decision on the data model of our task. PROCESS MODELLING: Here we model the procedures like what processes will be applied to data, how we will process the data, what operations will be done in different processes, etc. Framing processes is very essential and the more ...

BUSINESS AREA ANALYSIS

It consists of a set of steps needed to analyze a business concerning its changing requirements. ENTERPRISE ANALYSIS: Collection of pre-project activities that leads to up to project selection guided by the business analyst. It enables us to make a better understanding of our position in different dimensions of business which will help us in making more business suitable decisions. Usually, it is done by considering project reports and onsite observations. REQUIREMENT ANALYSIS: Define tasks and resources which are associated with the planning and management of a system from the user, customers, and other stakeholders. We have to think about our future expectations and based on that we make a conclusive requirement list. This list will be further used as a reference in board meetings and a comparison of different time periods. REQUIREMENT ELICITATION: Researching and discovering the requirements of a system from the user, customer & other stakeholders. Elicitation is just like a fac...

SYSTEM ENGINEERING HIERARCHY

System engineering is a group of bottom-up and top-down techniques to navigate the hierarchy. Its procedure starts with a world view which is the entire business or product domain. As we go deep down into the hierarchy, we will get more and more details about specific sub-systems. The beginning is a slightly more formal manner the world view (WV) is composed of a group of systems in its own right. WV={D1,D2,D3, . . . ,Dn} Every domain is composed of exact elements (Ej) that serve some role in accomplishing the target and objectives of the domain. Di={E1,E2,E3, . . . ,Em} at last each element is implemented through specifying the technical components (Ck) which achive the neccessary function for an element. Ej={C1,C2,C3, . . . ,Ck} In the software circumstances, a component could be a computer program a module, a reusable program component, and class or object, or even a programming language statement.

FORMAL METHODS

In software engineering, formal methods are the same as the system development life cycle that we have discussed in system analysis and design. Recognization of the need for change: First of all we have to understand what is our need, motive, and expectations behind changing a system partially or fully. Feasibility study: Here we understand our limitations that till where we can go in a particular dimension it may be in terms of cost, change, people’s resistance, etc. Analysis of the present system: Then we have to understand the present system first so that we can know the consecutive which might cause by changes made by us. Design of a candidate system: Finally we have to design the new candidate system for which we have gathered so much pre-requisite knowledge. Testing and Implementation of the system: Before implementation, we have to test our new system so that we can rectify the bugs and make the system more efficient. The suggestions that we get in testing will be followed ...

FOURTH GENERATION TECHNIQUES (4GT)

This model used fourth-generation technologies to develop software linearly. It has the same stages as in the linear sequential or waterfall model. CHARACTERISTICS: Use of software tools that allow software engineers to specify software characteristics at a higher level. The tools generate codes based on specifications. More time in design and testing increases productivity. Tools may not be easy to use, and codes generated may not be efficient. ADVANTAGES: More advanced technologies are used. The software will be more adaptable to future technological changes. Developers find ease in application generation. Time and cost-efficient. DISADVANTAGES: Much more qualified and experienced developers are needed. We have to depend on third parties to support our system. Codes generated may not be easy to use. Tools may not be easy to use

COMPONENT ASSEMBLY MODEL

This model follows an object-oriented methodology where the whole system is divided into components, if they are already available in the library then we import them else we have to build them and at last, we construct the system by integrating them. CHARACTERISTICS: Use of object-oriented technology. Component-class that encapsulates both data and algorithm. Component delivered to be reusable. Paradigm similar to spiral model, but engineering activity involves components. The system is produced by assembling the correct components. ADVANTAGES: Time and resource conservative. Having object-oriented methodology. Components are built once and then they can be reused further. Suitable for small to large object-oriented projects. Very low cost in the construction of the system. DISADVANTAGES: Can’t use it for pioneering projects. Needs good planning and design. Needs a clear and complete definition of the whole system before dividing it into components. Need experts to divide the syst...

INCREMENTAL MODEL

The whole system is broken down into independent deliveries and then each of them gets designed, developed, tested, and implemented separately. CHARACTERISTICS: It is used when requirements are well understood. Multiple independent deliveries are identified. Workflow in a linear fashion. Iterative in nature. Focuses on an operational product with each increment. ADVANTAGES: Lower initial delivery cost. Easier to manage risk. It is easier to test and debug during a smaller iteration. customer can respond to each build. Development is easier, more efficient, and cost-reducing. DISADVANTAGES: Needs good planning and design. The total cost is higher than the waterfall. Software gets created at later stages of the development cycle. Needs a clear and complete definition of the whole system before it can be broken down and built incrementally.

EVOLUTIONARY MODEL

Software gets developed in three phases- initial, intermediate, and final. Each of them has further divided into three stages- specification, development, and validation. CHARACTERISTICS: It evolves in three phases initial, intermediate and final. Each version follows a linear trend in itself like specification, development, and validation. It is generally used for large projects. Due to its lengthy process, it costs too much. WHERE TO USE: Very useful for large projects. Well suited for projects using object-oriented development. When the client prefers the project in an incremental order rather than the entire thing to be manufactured and delivered. ADVANTAGES: Risk analysis is better. It supports changing environment. Initial operating time is less. Better suited for large mission-critical projects. During the life cycle software is produced early which facilitates customer evaluation and feedback. DISADVANTAGES: Management complexity is more. Not suitable for smaller projects. High...

RAD (RAPID APPLICATION DEVELOPMENT) MODEL

It is an incremental model that emphasizes an extremely short development cycle (60-90 days). We first divided the whole project into different independent deliveries which can be developed in a linear trend alone. CHARACTERISTICS: It uses component-based construction. Uses multiple teams on a scalable project. Needs good planning and design. It first gets broken down and built independently. ADVANTAGES: Develops software in very less amount of time. It is very time-conservative. Cretes effective and reliable software. Suitable for small and low-risk projects. DISADVANTAGES: It requires heavy resources. Heavily committed developers and customers are needed. Performance can be a problem. Difficult to use new technologies. download notes