Software Engineering Process
The goals of AEM's Software Engineering Process are to understand the client's business objectives, translate them into effective designs, build the highest quality solutions, and deploy defect free systems that stand the test of time.
Software Engineering is the process of applying methods and techniques aimed at making software development more systematic. There are numerous Software Development Methodologies from industry standards (e.g. Rational Unified Process, Extreme, Agile, Feature Driven, Test-First, etc.) to organizational derived (i.e. home grown, best practices, etc.), which are employed today.
AEM is well versed and skilled at employing industry methodologies from Feature Driven Development (FDD) to a more structured Rational Unified Process (RUP). We are a seasoned organization who possesses the ability to adapt and augment our software engineering methods and techniques and align our software development methodology to satisfy customers' needs.
OUR PROCESS – SEI CMMI®
The Carnegie Mellon Software Engineering Institute's (SEI) Capability Maturity Model Integration (CMMI) program is an industry standard with the purpose of helping organizations make measured improvements in their software engineering capabilities. AEM embodies these practices and has taken on an organizational effort toward SEI CMMI compliance. To this extent, AEM has projects that are assessed under CMMI. AEM is currently assessed at CMMI Level 2 and is aggressively pursuing Level 3 certification for two ongoing projects. Our certified processes include:
- Project Planning
- Project Monitoring and Control
- Requirements Management
- Quality Assurance
- Configuration Management
Our vision of software engineering disciplines is the same as SEI's. "The right software, delivered defect free, on time and on cost, every time."
OUR DEVELOPMENT APPROACH
AEM utilizes a modified software development methodology that is more closely aligned with Feature Driven Development (FDD). FDD is a short-iteration process framework for software development projects. It follows the traditional software development life-cycle iterations of requirements definition, analysis, design, development, and deployment, but with a focus on short-term deliverables through small subsets of features into fully functional releases.
Each step in this process has Entry and Exit criteria that must be met before moving on to the next phase. Tasks are defined within each phase. Feature Sets are coupled with test cases that validate the Feature Set. This adds a different dimension to FDD by adding test cases that validate the business rules at the rule layer. This approach is sometimes referred to as Test First Development or Test Driven Development (TDD).
Unlike much larger development methodologies, this methodology is more lightweight and agile, which allows system behavior to be developed within shorter iteration cycles providing users early access to validate and refine requirements through the next iteration.
Our development philosophy is process driven, quantitative, and tailored to the needs of each specific project independent of the software development methodology.
|