Posts

Showing posts with the label Software Engineering

Teamwork

Right balance of technical skills and personalities, and organizing that group so that the members work together effectively. Personality Type Task-oriented - The motivation for doing the work is the work itself. who are motivated by the intellectual challenge of software development. Self-oriented - Who are principally motivated by personal success and recognition. They are interested in software development as a means of achieving their own goals. Have longer-term goals, such as career progression, that motivate them and they wish to be successful in their work to help realize these goals. Interaction oriented - The principal motivation is the presence and actions of co-workers. People go to work because they like to go to work. Most software engineering is a group activity The development schedule for most non-trivial software projects is such that they cannot be completed by o...

The People

Image
The Stakeholders Senior manager – define business issues. Project (technical) manager – plan, motive, organize and control practitioners. Practitioners – deliver technical skill. Customers – specify the requirements. End user – directly interact with product. Team Leaders MOI Model of Leadership M otivation - The ability to encourage (by push or pull) technical people to produce to their best ability. O rganization - The ability to mold exiting processes that will enable the initial concept to be translated into a final product. I deas or innovation - The ability to encourage people to create and feel creativity People Need Hierarchy Characteristics of Team Leaders Problem solving Ability of diagnose the technical and organizational issues Systematically structured solution or motivate practitioners to develop the solution Apply lessons learned from past projects Managerial Identity Take responsibility of a assigned project Mus...

Project Management

Projects need to be managed because professional software engineering is always subject to organizational budget and schedule constraints. The project manager’s job is to ensure that the software project meets and overcomes these constraints as well as delivering high-quality software. Important goals are: Deliver the software to the customer at the agreed time. Keep overall costs within budget. Deliver software that meets the customer’s expectations. Maintain a happy and well-functioning development team. Project Management Spectrum People Managing People Teamwork Product Process Project

Class Diagram

Image
The class diagram is a static diagram. It represents the static view of an application.Class diagram is not only used for visualizing, describing and documenting different aspects of a system but also for constructing executable code of the software application. The class diagram describes the attributes and operations of a class. The UML diagrams like activity diagram, sequence diagram can only give the sequence flow of the application but class diagram is a bit different. So it is the most popular UML diagram in the coder community. So the purpose of the class diagram can be summarized as: Analysis and design of the static view of an application. Describe responsibilities of a system. Base for component and deployment diagrams. Forward and reverse engineering. Identifying Analysis Classes From a System: General classifications for a potential class External entity (e.g., another system, a device, a person) Thing (e.g., report, screen display) Occurrence or...

Swim lane Diagram

Image
Allows the modeler to represent the flow of activities described by the use-case and at the same time indicate which actor (if there are multiple actors involved in a specific use-case) or analysis class has responsibility for the action described by an activity rectangle. A swim lane diagram, sometimes called a cross-functional diagram. It is a process flowchart that provides richer information on who does what . It can also be expanded to show times— when tasks are done and how long they take. Example :Swim lane Diagram for POS Swim lane Diagram for POS

Activity Diagrams

Image
Activity Diagram Tools: Activity Diagram Tools Synchronization Bar: A Synchronization Bar is used to describe an intermediary step in a process in an activity diagram.  This intermediary process re-establishes a logical level, usually the result of several inputs. Example :Activity Diagram for Log in System Activity Diagram for Log in System

Use Case Text

Image
It is effective to use the first person “I” to describe how the actor interacts with the software. Format of the text part of a use case. Example Use-case title : Use-case text for system user. Actor : system user. Description : I can add new member in this system also i can add a subject... ... ... ... ... ... ...  

Testing and Deployment Principles

Testing Principles All tests should be traceable to customer requirements Tests should be planned long before testing begins Testing should begin “in the small” and progress toward testing “in the large” Deployment Principles Customer expectation for the software must be managed A complete delivery package should be assembled and tested A support government must be established before the software is delivered Appropriate instructional materials must be provide to end user Buggy software should be fixed first, delivered later

Coding principles for Software Project

Preparation : Before writing code Understand the problem you’re trying to solve Understand basic design principles and concepts Pick a programming language that meets the need s of the software to be built and the environment in which it will operate Create a set of unit tests that will be applied once the coding is complete for each component Coding: When writing code Constrain your algorithm by following structured programming practice Select the data structure that will meet the needs of design Understand the software architecture and create interfaces that are consistent with it Select meaningful variable name Create visual layout

Modeling Principles for Software Project

Analysis Modelling Principles The information domain of a problem must be represented The functions that the software performs must be defined The behaviour of the software must be represented The models that depict information, function and behaviour must be partitioned is a manner that uncovers detail a layered or hierarchical fashion The analysis task should move from essential information toward implementation detail Design Modelling Principles Design should be traceable to the analysis model Always consider the architecture of the system to be built Design of data is as important as design of processing functions Interface must be designed with care Component level design should be functionally independent Design representation should be easily understandable The design should be developed iteratively. With each iteration, the designer should strive for greater simplicity

Planning Principles for Software Project

Understand the scope of the project Involve the customer in the planning activities Recognize that planning is iterative Estimate based on what you know Consider risk as you define the plan Be realistic Define how you intend to ensure quality Track the plan frequently and make adjustment as required

Software Engineering Practice

Understand the problem ( communication and analysis) Plan a solution (modelling and software design) Carry out the plan (code generation) Examine the result for accuracy (testing and quality assurance) Core principles for Software Engineering : The reason it all exists KISS! (Keep It Simple Stupid) Maintain the vision Be open to the future Plan ahead for reuse Think!

what is communication

Image
Main Business Communication principles Business communication is the communication between the people in the organization for the purpose of carrying out the business activities. A business can flourish when all objectives of the organization are achieved effectively . For efficiency in an organization, all the people of the organization must be able to convey their message properly . The exchange of ideas and understanding within and outside the organization to achieve the business goals is known as business communication. Communication Skills Needed in Business Speaking well Writing well Displaying proper etiquette (manners) Listening attentively The Basic Forms Of Communication Nonverbal communication: Facial Gesture Vocal characteristic Personal appearance Touching behavior Use time and space Verbal Communication: speaking and writing Listening and Reading   Why Business Needs to Communicate? Communication is vital to every part of business. Exampl...

What is software engineering

1.What is software? Ans:Computer programs and associated documentation. Software products may be developed for a particular customer or may be developed for a general market. 2.What is software engineering? Ans:Software engineering is an engineering discipline that is concerned with all aspects of software production. 3.What is the difference between software engineering and system engineering? Ans:System engineering is concerned with all aspects of computer-based systems development including hardware, software and process engineering. Software engineering is part of this more general process 4.What are the key challenges facing software engineering? Ans:Coping with increasing diversity, demands for reduced delivery times and developing trustworthy software. 5.What are the costs of software engineering? Ans:Roughly 60% of software costs are development costs, 40% are testing costs. For custom software, evolution costs often exceed development costs. 6.What are the best software engine...

The Rational Unified Process Model

Image
Rational Unified Process: The Rational Unified Process (RUP) is an iterative software development process framework created by the Rational Software Corporation, a division of IBM since 2003. RUP is not a single concrete prescriptive process, but rather an adaptable process framework, intended to be tailored by the development organizations and software project teams that will select the elements of the process that are appropriate for their needs. RUP is a specific implementation of the Unified Process. •Inception The primary objective is to scope the system adequately as a basis for validating initial costing and budgets. In this phase the business case which includes business context, success factors (expected revenue, market recognition, etc.), and financial forecast is established. To complement the business case, a basic use case model, project plan, initial risk assessment and project description (the core project requirements, constraints and key features) are generated. After ...

Boehm’s Spiral Process Model

Image
Spiral model: The spiral model is a software development process combining elements of both design and prototyping-in-stages, in an effort to combine advantages of top-down and bottom-up concepts. Also known as the spiral life-cycle model (or spiral development), it is a systems development method (SDM) used in information technology (IT). This model of development combines the features of the prototyping and the waterfall model. The spiral model is intended for large, expensive and complicated projects.   History: The spiral model was defined by Barry Boehm in his 1986 article "A Spiral Model of Software Development and Enhancement". This model was not the first model to discuss iterative development. As originally envisioned, the iterations were typically 6 months to 2 years long. Each phase starts with a design goal and ends with the client (who may be internal) reviewing the progress thus far. Analysis and engineering efforts are applied at each phase of the project, wit...

Rapid Application Development (RAD)

Image
RAD, or rapid application development, is an object-oriented approach to systems development that includes a method of development as well as software tools •RAD is used when –The team includes programmers and analysts who are experienced with it. –Users are sophisticated and highly engaged with the goals of the company. •Negative Aspect - RAD is based on Object Oriented approach. - If commitment is lacking RAD will fail. - RAD is not appropriate when technical risks are high, e.g. this occurs when a new application makes heavy use of new technology. You can also view: 1. Boehms Spiral Process Model 2. Rational Unified Process Model 3. Rapid Application Development-RAD 4. Prototyping Process Model 5. Incremental Process Model 6. Component Based Software Engineering 7. Evolutionary Process Development Model 8. Waterfall Process Model 9. Software Process Framework Activity

The Prototyping Process Model

Image
•Gather requirements •Quick design focusing on what will be visible to user – input & output formats •Process iterated until customer & developer satisfied – then throw away prototype and rebuild system to high quality. - Insufficient analysis. - Excessive development time of the prototype. - High expectations for productivity with insufficient effort. You can also view: 1. Boehms Spiral Process Model 2. Rational Unified Process Model 3. Rapid Application Development-RAD 4. Prototyping Process Model 5. Incremental Process Model 6. Component Based Software Engineering 7. Evolutionary Process Development Model 8. Waterfall Process Model 9. Software Process Framework Activity

The Incremental Process Model

Image
•Main characteristics –Hybrid model that combines elements of the waterfall and evolutionary paradigms. –The specification, design, and implementation phases are broken in smaller increments. •Advantages –Provides better support for process iteration. –Reduces rework in the software construction process. –Allows early delivery of parts of the system. –Supports easier integration of sub-systems. –Lower risk of project failure. –Delivery priorities can be more easily set. •Disadvantages –Mapping requirements to increments may not be easy. –Common software facilities may be difficult to identify. –Some decisions on requirements may be delayed. •Applicability: –When it is possible to deliver the system “part-by-part” . You can also view: 1. Boehms Spiral Process Model 2. Rational Unified Process Model 3. Rapid Application Development-RAD 4. Prototyping Process Model 5. Incremental Process Model 6. Component Based Software Engineering 7. Evolutionary Process Development Model 8. W...

Component Based Software Engineering

Image
•Main characteristics –Makes intensive use of existing reusable components. –The focus is on integrating the components rather than on creating them from the scratch. •Advantages –Reduces considerably the software to be developed “in-house”. –Allows faster delivery. –In principle, more reliable systems, due to using previously tested components. •Disadvantages –agreement in requirements are needed. –Less control over the system’s evolution •Applicability: –When there is a pool of existing components that could satisfy the requirements of the new product. –Emerging trend: integration of web services from a range of suppliers. You can also view: 1. Boehms Spiral Process Model 2. Rational Unified Process Model 3. Rapid Application Development-RAD 4. Prototyping Process Model 5. Incremental Process Model 6. Component Based Software Engineering 7. Evolutionary Process Development Model 8. Waterfall Process Model 9. Software Process Framework Activity
i am running my new blog at Knowledge Sharing (https://ksharing.info). please subscribe my new blog