Software Engineering Distributed by justEtc |
Microsoft Solution Framework
What is Microsoft Solution Framework(MSF)?
It is just a software development methodology that ensures that all elements(Process, People, and Tools ) of a project are successfully managed. Also, it provides guidelines on planning, designing, developing, and deploying of projects.
MSF Process Models
It is just a combination of the waterfall model and spiral model. Watrfall model goes step by step until the finish of the project. It uses milestones as an indicator of progress. Spiral model is an iterative model. Where the development proceeds in small cycles and the steps are repeated. Waterfall model is good for projects with clear requirements and goals. Spiral model is good for projects that are not clearly defined and need repeated feedback and modification. MSF uses the milestone approach from waterfall model and iterative approach from spiral model. MSF defines some milestones(steps), go all the way and again come back like the spiral model to improve and modify.
MSF Milestones
Envisioning
Planning
Developing
Stabilizing
Deploying
MSF Team Model
Team Members:
Product Management: Mainly deals with customers and define project requirements, also ensures customer expectations are met.
Project Management: Maintains project development and delivery to the customer
Development: Develops according to the specifications.
Testing: Tests and assures product quality
Release Management: Ensures smooth deployment and operations of the software
User Experience: Supports issues of the users.
One person may be assigned to perform multiple roles. MSF also has suggestion on how to combine responsibities such as the developer should not be assigned to any other role.
MSF Disciplines
1. MSF risk management process
2. MSF readiness management process
MSF project management process:
Integrate planning and conduct change control
Define and manage the scope of the project
Prepare a budget and manage costs
Prepare and track schedules
Ensure that right resources are allocated to the project
Manage contracts and vendors and procure project resources
Facilitate team and external communications
Facilitate the risk management process
Document and monitor the team's quality management process
How to use Iterations in MSF projects
Creating versioned releases
Creating living documents
Creating periodic builds
For details please check:
http://www.microsoft.com/technet/solutionaccelerators/msf/default.mspx
Tools to create UML diagrams from PHP Source
Auto Generate class diagrams from php source
http://www.sparxsystems.com/products/ea_downloads.html
http://uml.sourceforge.net/download.php
http://www.excelsoftware.com/php_models.pdf
http://www.codegeneration.net/generator.php?id=220
UML Theory--You can learn and Design by Hand(or visio/MS-Word)
Short, to the point excellent: http://dn.codegear.com/article/31863
Not Bad but lengthy: http://www.jeckle.de/umllinks.htm#tutorials
Just Ok: http://www.sparxsystems.com.au/UML_Tutorial.htm
If I worked with a programmer who looked busy all the time, I'd assume that he was not a good programmer because he wasn't using his most valuable tool, his brain. -- Steve Mcconnell Personal Character and Programming ---------------------------------- For a software engineer the only building material is the human intellect and the primary tool is he himself. Character is the more decisive factor than intelligence in the make up of a superior programmer. The best programmers of the world are the most humble. They realize how small their brain is for programming and they agree their limitations. Being humble gives opportunities to learn more about programming Human brain is really limited to understand an average program fully. So what better programmers do (adopt better habits) are: 1. Decompose systems into smaller sub-systems. Write short routines. It reduces load from the brain 2. Good programmers review, inspect, and test their codes/designs to compensate for brain limitations 3. Good programmers follow standard and proven conventions to reduce load from their brain Ways to be a good programmer: Curiosity is important Experiment Read about problem solving Read books and periodicals Read case studies Network with other programmers Adopt good programming habits Avoid laziness Experince, persistence, and guts are sometimes hurtful to the programmers To be a good programmer developing the right programming habits is the most important strategy
Design in construction
When software development does not go through a detailed design phase, developers require to think the design of the part they are working on and how the design fits together with the other components and the interface of the software. It's always better to think about the design and algorithm before coding it. Also, before compiling, it's always better to mentally check your code that the algorithm is right. Also, you can fix/determine/consider some test data and mentally check that the algorithm is generating the expected output. If not, check your design, algorithm, and code.
When the development method goes through a detailed design phase, while coding as a developer you should be clear of the requirements of the part and the design of the part. Then you should also think if your algorithm/implementation will meet the required functionalities and design requirements. Several industry studies show that 16-19% of the developer errors are due to misinterpretation or the misunderstanding of the design and requirements.
What is it
Client = end user, purchaser of your product/service, for whom you are developing the software. Client Focused Software Development focuses on client's need, client's business, client's business operations. It tries to develop software that reflect clients' need, ambitions, company image, business profit, operational flexibility/improvement, employee satisfaction, operator satisfaction, cost the right/appropriate budget.
.
How to achieve?
In 1994 Standishgroup (http://standishgroup.com/chaos_resources/chronicles.php), documented billions of dollars wastage in failure software development projects and also examined the reasons. Top two reasons are:
Topics:
Software Engineering Code of Ethics and Professional Practice
Very Small Enterprises (VSE) have significant contribution in software products and service industry. In Europe 85% IT sector companies have only 1 - 10 employees, 78% of Montreal, Canada based companies have < 25 employees, 50% have fewer than 10 [2005], 66% of US companies have 1-10 employees [2002].
Current software engineering standards do not address the needs of these organizations. It is also difficult for VSEs to achieve certifications such as ISO and IEEE and VSEs usually lack the capability to be identified as quality software producers. Most VSEs do not have the resources in terms of number of employees, cost, and time - or see a net benefit in establishing software life cycle processes.
In 2005, WG24 was established to define a software engineering standard for VSEs. WG24 is now justifying the following hypotheses regarding VSEs to find an appropriate standard for them.
Initially, WG24 is analyzing Moprosoft, a Mexican standard based on ISO standard for small and medium enterprises to achieve their objective
Check this article: Improve your status from "good developer" to "great developer"!
What are the problems?
End user's perspective