Showing posts with label Software Engineering Education. Show all posts
Showing posts with label Software Engineering Education. Show all posts

Monday, December 27, 2010

How I prepared for CSDP ?

After I became an IEEE Certified Software Development Professional, many of my friends asked me about it and how to prepare for it. As a CSDP holder, let me introduce CSDP for you and how I prepared for it.

The CSDP credential is intended for mid-career software development professionals that want to confirm their proficiency of standard software development practices and advance in their careers.

Who is eligible to take the CSDP?

Licensed SW Engineers and IEEE Senior Members are already qualified for the CSDP. All others must meet the following:

  • Education: (need at least one)
    • Bachelor's degree
    • CSDA certificate holder
    • Educator at the post-baccalaureate level
    • Full member of the IEEE
  • Experience: (need at least one)
    • Advanced degree in software engineering and at least two years (about 3,500 hrs) of experience in software engineering/development
    • At least four years (about 7,000 hrs) experience in software engineering/development

Preparing for CSDP

Unfortunately, IEEE Computer Society didn’t provide or recommend a specific training material for CSDP. All what they provided is:

  1. CSDP Exam specification: lists the knowledge area, its weight in the exam, and the competency level you should possess.
  2. Recommend list of references.

Of course preparation depends on your knowledge level and experience you have. Below the materials that I used:

  1. Guide to the Software Engineering Body of Knowledge | CS Press
  2. Software Engineering, 8th Edition | Ian Sommerville | Addison Wesley
  3. Code Complete, 2nd Edition | Steve McConnell | Microsoft Press
  4. Software Engineering | IIT Bombay NPTEL Online Course , Prof. Rushikesh K Joshi
    1. 40 Lecture, almost 1 hour each
    2. Almost covers all topics in the Ian Sommerville’s book: Software Engineering
    3. http://freevideolectures.com/Course/2318/Software-Engineering
  5. Software Engineering | UC Berkeley Online Course, Fall 2010 , Prof. Armando Fox
    1. 17 Lectures
    2. http://freevideolectures.com/Course/2729/Software-Engineering
  6. Principles of Software Engineering | University of Washington Online Course, Autumn 2007 , Prof. David Notkin
    1. 9 Lectures
    2. http://freevideolectures.com/Course/2831/CSEP-503-Principles-of-Software-Engineering
  7. For software process only, the podcast series “IEEE Talks Software Process”
    1. 9 Podcasts, Avg 20 min each
    2. http://www.computer.org/portal/web/ieee-talks-software-process/home
  8. For software architecture, the podcast series “IEEE Software on architecture with Grady Booch”
    1. 26 Podcasts, Avg 15 min each
    2. http://www.computer.org/portal/web/computingnow/onarchitecture

Although these resources looks comprehensive, questions in the exam may not be completely covered by these resource. So, try to enrich your knowledge and experience in software engineering as much as you can and Good Luck.

Friday, December 17, 2010

Business analysis & Requirements Engineering Certifications

I was searching for certifications on requirements engineering and I found that there is a lot of mixing between business analysis and requirements engineering. This mix exists both on the daily use, professional certifications and organizations.

Starting by the definitions:

  • Business analysis is the discipline of identifying business needs and determining solutions to business problems. Solutions often include a systems development component, but may also consist of process improvement, organizational change or strategic planning and policy development. (Kathleen B Hass, Richard Vander Horst, Kimi Ziemski (2008). From Analyst to Leader: Elevating the Role of the Business Analyst Management Concepts, 2008. ISBN 1567262139. p94: "As the discipline of business analysis becomes professionalized")
  • Requirement engineering according to Laplante is "a sub-discipline of systems engineering and software engineering that is concerned with determining the goals, functions, and constraints of hardware and software systems.". (Phillip A. Laplante (2007) What Every Engineer Should Know about Software Engineering. ISBN 0849372283 p44)

This may lead us to conclude that business analysis as a discipline has a heavy overlap with requirements engineering, but focuses on identifying the changes to an organization that are required for it to achieve strategic goals. These changes include changes to strategies, structures, policies, processes, and information systems.

Regarding organizations: IIBA® International Institute of Business Analysis is the independent non-profit professional association serving the growing field of Business Analysis, IREB International Requirements Engineering Board is one serving Requirements Engineering

Both IIBA and IREB offers professional certifications:

  • IIBA : Certified Business Analyst Professional CBAP
  • IREB : Certified Professional for Requirements Engineering CPRE

based on many forum posts and discussions I found that:

  • CBAP is targeted to highly educated BA professionals only (you need a minimum of 5 years of experience in business analysis / RE)
  • CPRE is aimed to everyone working in the field of requirements engineering
  • CPRE is a lot cheaper and can be achieved at an independent certification body

What you think ?

Could you please share your opinion and ideas with me ?

Wednesday, September 1, 2010

How to educate the next generation of software engineers ?

After my completion of my master in software engineering at Nile University which we faced many problems at it (I hope it be better in the future), I tried to search for what globally constitutes a master of software engineering and I found the following:

  • The last effort to create a reference curriculum for graduate software engineering education was by the SEI in the early 1990s.
  • There were, in effect, no current community-endorsed recommendations on what to teach software engineers.
  • Response: create a project to create a new reference curriculum in software engineering (iSSec Project)

The Integrated Software and
Systems Engineering Curriculum iSSec Project

iSSec Project begun in May 2007 at Stevens Institute of Technology and sponsored by DoD Director of Systems and Software Engineering Kristen Baldwin. Three products planned for iSSec:

  1. A modern reference curriculum for a master’s degree in software engineering that integrates an appropriate amount of systems engineering
  2. A modern reference curriculum for a master’s degree in systems engineering that integrates an appropriate amount of software engineering
  3. A truly interdisciplinary degree that is neither systems nor software engineering – it is both

What interests me the most is the first product, and it is the only completed product. A project of seven steps had been set to produce that reference curriculum:

  1. Understand the current state of SwE graduate education (November 2007)
  2. Create GSwE2009 0.25 (formerly GSwERC) with a small team, suitable for limited review (February 2008)
  3. Publicize effort through conferences, papers, website, etc (continuous)
  4. Create GSwE2009 0.50 (formerly GSwERC) suitable for broad community review and early adoption (October 2008)
  5. Create GSwE2009 1.0 suitable for broad adoption (September 2009)
  6. Transition stewardship to professional societies (Late 2009-Early 2010)
  7. Foster adoption world-wide (2009 and beyond)

Steps 6 and 7 are undertaking now.

Graduate  Software  Engineering  2009  (GSwE2009):  Curriculum  Guidelines  for  Graduate Degree Programs in Software Engineering is the first product of the iSSEc project.

This document is a reference for anyone currently in a master program in software engineering or will enroll in such a program. GSwE2009 is a REFERENCE curriculum, not an absolute statement of requirements. It is a set of recommendations to universities on the best guidance that the authors could generate, incorporating extensive review comments from the broad community. The authors believe that GSwE2009 sets the “gold standard” for graduate software engineering education. Here is the summary of the most important parts of GSwE2009, outcomes and requirements.


Summary of Outcomes
Graduates of a master‘s program that satisfies GSwE2009 recommendations will:

  1. CBOK : Master the CBOK (Core Body Of Knowledge).
  2. DOMAIN : Master software engineering in at least one application domain, such as  finance, medical, transportation, or telecommunications, and one application type, such as real-time, embedded, safety-critical, or highly distributed systems. That mastery includes understanding how differences in domain and type manifest themselves in both the software itself and in its engineering, and includes understanding how to learn a new application domain or type.
  3. DEPTH : Master at least one KA (Knowledge Area) or sub-area from the CBOK to at least the Bloom Synthesis level.
  4. ETHICS : Be able to make ethical professional decisions and practice ethical professional behavior.
  5. SYSTEMS ENGINEERING : Understand the relationship  between SwE and SE and  be able to apply SE principles and practices in the engineering of software.
  6. TEAM : Be an effective member of a team, including teams that are international and geographically distributed, effectively communicate both orally and in writing, and lead in one area of project development, such as project management, requirements analysis, architecture, construction, or quality assurance.
  7. RECONCILIATION : Be able to reconcile conflicting project objectives, finding acceptable compromises within
    limitations of cost, time, knowledge, existing systems, and organizations.
  8. PERSPECTIVE : Understand and appreciate feasibility analysis, negotiation, and good communications with stakeholders in a typical software development environment, and be able to perform those tasks well; have effective work habits and be a leader.
  9. LEARNING : Be able to learn new models, techniques, and technologies as they emerge, and appreciate
    the necessity of such continuing professional development.
  10. TECHNOLOGY : Be  able  to  analyze  a  current  significant  software  technology,  articulate  its  strengths  and weaknesses, compare it to alternative technologies, and specify and promote improvements or extensions to that technology.

Summary of Expected Background
GSwE2009 presumes that an entering student has:

  1. DEGREE : The equivalent of an undergraduate degree in computing or an undergraduate degree in an engineering or scientific field and a minor in computing,
  2. SWE COURSE : The equivalent of an introductory course in software engineering, and
  3. EXPERIENCE :At least two years of practical experience in some aspect  of software engineering or software development.

As Nile University is the only institute in Egypt that give a master degree in software engineering, I hope they follow this reference curriculum.

Individuals can also use it to guide their self-study plans in software engineering.